您的位置:首页 > 理论基础 > 计算机网络

网络配置

2019-08-20 13:56 1606 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/wdirdo/article/details/99840571

网络管理命令

网络配置、net-tools(ifconfig, netstat, route)、ip、ss


网络配置

  • 静态指定:
    ifconfig, route, netstat
    ip: object {link, addr, route}, ss, tc
    system-config-network-tui,setup
    配置文件
  • 动态分配:
    DHCP: Dynamic Host Configuration Protocol

centos6 网络配置

CentOS 6 网卡名称

  • 接口命名方式:CentOS 6
    以太网:eth[0,1,2,…]
    ppp:ppp[0,1,2,…]
  • 网络接口识别并命名相关的udev配置文件:
    /etc/udev/rules.d/70-persistent-net.rules
  • 查看网卡:
    dmesg |grep –i eth
    ethtool -i eth0
  • 卸载网卡驱动:
    modprobe -r e1000
    rmmod e1000
  • 装载网卡驱动:
    modprobe e1000

网络配置文件

  • IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE

  • 路由相关的配置文件:
    /etc/sysconfig/network-scripts/route-IFACE

  • /etc/sysconfig/network-scripts/ifcfg-IFACE:
    说明参考/usr/share/doc/initscripts-9.49.30/sysconfig.txt
    DEVICE:此配置文件应用到的设备
    HWADDR:对应的设备的MAC地址
    BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
    NM_CONTROLLED:NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no”

  • ONBOOT:在系统引导时是否激活此设备

  • TYPE:接口类型;常见有的Ethernet, Bridge

  • UUID:设备的惟一标识

  • IPADDR:指明IP地址

  • NETMASK:子网掩码

  • GATEWAY: 默认网关

  • DNS1:第一个DNS服务器指向

  • DNS2:第二个DNS服务器指向

  • USERCTL:普通用户是否可控制此设备

  • PEERDNS:如果BOOTPROTO的值为“dhcp”,YES将允许dhcp server分配的dns服务器信息直接覆盖至/etc/resolv.conf文件,NO不允许修改resolv.conf

  • 设备配置被保存在文本文件中
    • /etc/sysconfig/network-scripts/ifcfg-
    • 帮助文档列出完整选项列表:/usr/share/docinitcripts-*/sysconfig.txt

centos6修改主机名时

  • hostname HOSTNAME 临时有效
  • 编辑配置文件/etc/sysconfig/network,修改主机名为HOSTNAME
  • 修改主机后建议修改/etc/hosts文件,将刚修改的主机添加进去,否则不能ping `hostname`

net-tools(ifconfig, netstat, route)

ifconfig命令

  • 配置网络接口
  • ifconfig [interface]
    ifconfig -a
    ifconfig IFACE [up|down]
    ifconfig interface [aftype] options | address …
    ifconfig IFACE IP/netmask [up]
    ifconfig IFACE IP netmask NETMASK
  • 注意:立即生效
  • 启用混杂模式:[-]promisc

route命令

  • 路由管理命令

  • 查看:route -n 添加:route add
    route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

  • 目标:192.168.1.3 网关:172.16.0.1
    route add -host 192.168.1.3 gw 172.16.0.1 dev eth0

  • 目标:192.168.0.0 网关:172.16.0.1
    route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
    route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0

  • 默认路由,网关:172.16.0.1
    route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
    route add default gw 172.16.0.1

  • 删除:route del
    route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

  • 目标:192.168.1.3 网关:172.16.0.1
    route del -host 192.168.1.3

  • 目标:192.168.0.0 网关:172.16.0.1
    route del -net 192.168.0.0 netmask 255.255.255.0

  • 配置动态路由

  • 通过守护进程获取动态路由
    • 安装quagga包
    • 支持多种路由协议:RIP、OSPF和BGP
    • 命令vtysh配置

netstat命令

  • 显示网络连接:
    netstat [–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p]

  • 选项
    -t: tcp协议相关
    -u: udp协议相关
    -w: raw socket相关
    -l: 处于监听状态
    -a: 所有状态
    -n: 以数字显示IP和端口
    -e:扩展格式
    -p: 显示相关进程及PID

  • 常用组合:
    -tan, -uan, -tnl, -unl

  • 显示路由表:
    netstat {–route|-r} [–numeric|-n]
       -r: 显示内核路由表
       -n: 数字格式

  • 显示接口统计数据:
    netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]
    netstat -i
    netstat –I=IFACE
    ifconfig -s eth0


配置Linux网络属性:ip命令

ip addr

  • ip addr { add | del } IFAD 4000 DR dev STRING
    [label LABEL]:添加地址时指明网卡别名
    [scope {global|link|host}]:指明作用域
       global: 全局可用
       link: 仅链接可用
       host: 本机可用
    [broadcast ADDRESS]:指明广播地址
    ip addr add 172.16.100.100/16 dev eth0 label eth0:0
    ip addr del 172.16.100.100/16 dev eth0 label eth0:0
  • ip address show - look at protocol addresses
    [dev DEVICE]
    [label PATTERN]
    [primary and secondary]
  • ip addr flush 使用格式同show
    ip addr flush dev eth0

ip - show/ manipulate routing, devices, policy routing and tunnels

ip route

  • 添加路由:ip route add
    ip route add TARGET via GW dev IFACE src SOURCE_IP
       TARGET:
          主机路由:IP
          网络路由:NETWORK/MASK
  • 添加网关:ip route add default via GW dev IFACE
  • 删除路由:ip route del TARGET
  • 显示路由:ip route show|list
  • 清空路由表:
    ip route flush [dev IFACE] [via PREFIX]
    ip route flush dev eth0

ss命令

  • FILTER : [ state TCP-STATE ] [ EXPRESSION ]

  • TCP的常见状态:
    tcp finite state machine:
       LISTEN: 监听
       ESTABLISHED:已建立的连接
       FIN_WAIT_1
       FIN_WAIT_2
       SYN_SENT
       SYN_RECV
       CLOSED

  • EXPRESSION:
    dport =
    sport =
    示例:’( dport = :ssh or sport = :ssh )’

  • 常用组合:
    -tan, -tanl, -tanlp, -uan

  • ss -l 显示本地打开的所有端口

  • ss -pl 显示每个进程具体打开的socket

  • ss -t -a 显示所有tcp socket

  • ss -u -a 显示所有的UDP Socekt

  • ss -o state established ‘( dport = :ssh or sport = :ssh )’ 显示所有已建立的ssh连接

  • ss -o state established ‘( dport = :http or sport = :http )’ 显示所有已建立
    的HTTP连接

  • ss -s 列出当前socket详细信息

CentOS 7网络属性配置

  • CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化
  • CentOS 7使用基于硬件,设备拓扑和设置类型命名:
  • (1) 网卡命名机制
    systemd对网络设备的命名方式
    (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
    (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
    © 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如
    enp2s0
    (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56
    (e) 上述均不可用时,则使用传统命名机制

网卡名称

  • 基于BIOS支持启用biosdevname软件
    内置网卡:em1,em2
    pci卡:pYpX Y:slot ,X:port
  • (2) 名称组成格式
    en: Ethernet 有线局域网
    wl: wlan 无线局域网
    ww: wwan无线广域网
    名称类型:
    o: 集成设备的设备索引号
    s: 扩展槽的索引号
    x: 基于MAC地址的命名
    ps: enp2s1

采用传统命名方式

  • 将centos7的网卡名称改成enss# —> eth0
    ①/etc/default/grub (建议修改之前备份啦~)
    /etc/sysconfig/grub --是/etc/default/grub的软链接
    修改/etc/sysconfig/grub也行

  • 在GRUB_CMDLINE_LINUX后的双引号内添加
    net.ifnames=0(顺序不影响)
    ① 使用sed直接修改:
    sed -ri ‘s/(^GRUB_CMDLINE_LINUX=.*)"/\1 net.ifnames=0"/’ /etc/default/grub

  • ②grub2-mkconfig -o /boot/grub2/grub.cfg

  • ③重启

  • 综上:修改/etc/default/grub的最终目的是为了修改/boot/grub2/grub.cfg此文件,但是/boot/grub2/grub.cfg此文件不建议直接修改,因此使用grub2-mkconfig -o /boot/grub2/grub.cfg重新生成此文件

CentOS 7网络配置工具

  • CentOS 7网络配置工具
  • 图形工具:nm-connection-editor
  • 字符配置tui工具:nmtui
  • 命令行工具:nmcli

cetntos7主机名

  • 配置文件:/etc/hostname ,默认没有此文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain
  • cetntos7 修改主机名:
    hostnamectl set-hostname HOSTNAME
  • 删除文件/etc/hostname,恢复主机名localhost.localdomain
  • 显示主机名信息
    hostname
    hostnamectl status

nmcli命令

  • nmcli - network manager client 属于它的客户端工具
  • Usage: nmcli connection modify { ARGUMENTS | help } 此命名用法,查看帮助
  • 地址配置工具:nmcli
  • nmcli [ OPTIONS ] OBJECT { COMMAND | help }
    device - show and manage network interfaces
    nmcli device help
    connection - start, stop, and manage network connections
    nmcli connection help
  • 修改IP地址等属性:
    nmcli connection modify IFACE [+|-]setting.property value
       setting.property:
       ipv4.addresses
       ipv4.gateway
       ipv4.dns1
       ipv4.method manual | auto
  • 修改配置文件执行生效:systemctl restart network
    nmcli con reload
  • nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0

使用nmcli配置网络

  • NeworkManager是管理和监控网络设置的守护进程

  • 设备即网络接口,连接是对网络接口的配置,一个网络接口可有多个连接配置,但同时只有一个连接配置生效

  • 显示所有包括不活动连接
    nmcli con show

  • 显示所有活动连接
    nmcli con show --active

  • 显示网络连接配置
    nmcli con show "System eth0“

  • 显示设备状态
    nmcli dev status

  • 显示网络接口属性
    nmcli dev show eth0

  • 创建新连接default,IP自动通过dhcp获取
    nmcli con add con-name default type Ethernet ifname eth0

  • 删除连接
    nmcli con del default

  • 创建新连接static ,指定静态IP,不自动连接
    nmcti con add con-name static ifname eth0 autoconnect no type
    Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254

  • 启用static连接配置
    nmcli con up static

  • 启用default连接配置
    nmcli con up default

  • 查看帮助
    nmcli con add help

  • 修改连接设置
    nmcli con mod “static” connection.autoconnect no
    nmcli con mod “static” ipv4.dns 172.25.X.254
    nmcli con mod “static” +ipv4.dns 8.8.8.8
    nmcli con mod “static” -ipv4.dns 8.8.8.8
    nmcli con mod “static” ipv4.addresses “172.16.X.10/24 172.16.X.254”
    nmcli con mod “static” +ipv4.addresses 10.10.10.10/16

  • DNS设置,存放在/etc/resolv.conf文件中
    PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取等价于下面命令:
    nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

  • 修改连接配置后,需要重新加载配置
    nmcli con reload
    nmcli con down “system eth0” 可被自动激活
    nmcli con up “system eth0”
    nmcli dev dis eth0 禁用网卡,访止被自动激活

  • 添加网关、dns等
    ]# nmcli connection modify eth0 ipv4.gateway 192.168.38.2

  • 配置网络

应用场景

  • 如果是一个经常需要切换不同网络环境的测试机,一会儿需要切换固定地址,一会儿需要切换静态地址,或者固定地址需要改变时,修改配置文件比较麻烦,可以准备好几套配置文件,放置在配置文件中,根据需要启用相应的配置文件即可。(可以使用nmcli)
  • nmcli命令会在/etc/sysconfig/network-scripts生成配置文件
    如命令不写ipv4.method manual 即使后面配置地址也没有,直接回默认dhcp分配地址

    图中相当于对eth1有两套网卡配置,但是同时只能生效一套网卡配置
    生效哪一配置:]# nmcli connection up eth1-test

Ubuntu网络配置

  • 网卡名称:
    默认ubuntu的网卡名称和CentOS 7类似,如:ens33,ens38等 修改网卡名称为统命名方式:

  • 修改配置文件为下面形式
    vi /etc/default/grub
    GRUB_CMDLINE_LINUX=“net.ifnames=0”

  • 生效新的grub.cfg文件
    grub-mkconfig -o /boot/grub/grub.cfg

  • reboot

  • 官网文档:
    https://help.ubuntu.com/lts/serverguide/network-configuration.html.zh-CN

  • 配置Ubuntu网络参照官网文档,注意格式 :空格和对齐

  • 修改网卡配置文件后需执行命令生效:netplan apply

  • 查看ip和gateway
    ip addr
    route -n

  • 查看DNS
    ls -l /etc/resolv.conf
    systemd-resolve --status

  • 修改主机名
    hostnamectl set-hostname ubuntu1804

centos7最小化安装

  • 最小化安装后,tab键默认是不能自动补全命令的
  • bash-completion安装包
  • yum install bash-completion 后重启系统
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: