Linux学习46 Linux网络相关属性配置进阶与实战

一、iproute2家族续

  1、ip命令续

    a、ip link 

    b、ip netns

    c、ip address 

      (1)、ip address add :增加一个IP地址 (add new protocol address )

        ip addr add IFADDR dev IFACE 

          [label NAME]:为额外添加的地址指明接口别名

          [broadcast ADDRESS]:广播地址,会根据IP和NETMASK自动计算得到

          [scope SCOPE_VALUE]:

            global:全局可用

            link:接口可用

            host:仅本机可用

        1)、现在我们首先用ifconfig命令删除网卡ens37的地址

[root@wohaoshuai1 ~]# ifconfig ens37 
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.61  netmask 255.255.255.0  broadcast 192.168.10.255
        ether 00:0c:29:76:9f:00  txqueuelen 1000  (Ethernet)
        RX packets 65  bytes 5556 (5.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 199  bytes 34302 (33.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@wohaoshuai1 ~]# ifconfig ens37 0
[root@wohaoshuai1 ~]# ifconfig ens37 
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:76:9f:00  txqueuelen 1000  (Ethernet)
        RX packets 107  bytes 9524 (9.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 217  bytes 36566 (35.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

        2)、然后我们给网卡ens37配置IP地址

[root@wohaoshuai1 ~]# ifconfig ens37 
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:76:9f:00  txqueuelen 1000  (Ethernet)
        RX packets 107  bytes 9524 (9.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 217  bytes 36566 (35.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@wohaoshuai1 ~]# ip addr add 192.168.10.61/24 dev ens37
[root@wohaoshuai1 ~]# ifconfig ens37 
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.61  netmask 255.255.255.0  broadcast 0.0.0.0
        ether 00:0c:29:76:9f:00  txqueuelen 1000  (Ethernet)
        RX packets 117  bytes 10308 (10.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 224  bytes 37520 (36.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

          其实我们可以再给ens37添加一个地址

[root@wohaoshuai1 ~]# ip addr add 192.168.10.62/24 dev ens37
[root@wohaoshuai1 ~]# ip add show ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.61/24 scope global ens37
       valid_lft forever preferred_lft forever
    inet 192.168.10.62/24 scope global secondary ens37
       valid_lft forever preferred_lft forever

          然后我们还可以再给ens37再添加一个地址

[root@wohaoshuai1 ~]# ip addr add 10.0.10.100/8 dev ens37
[root@wohaoshuai1 ~]# ip add show ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.61/24 scope global ens37
       valid_lft forever preferred_lft forever
    inet 10.0.10.100/8 scope global ens37
       valid_lft forever preferred_lft forever
    inet 192.168.10.62/24 scope global secondary ens37
       valid_lft forever preferred_lft forever

        3)、我们可以看到现在ens37网卡上有两个地址,其中192.168.10.61和10.0.10.100俩个是global地址,另一个192.168.10.62是secondary(第二的)地址。为什么其它两个地址中有一个是global地址有一个是secondary地址呢?因为在同一个网段中我们的地址才分第一地址和第二地址。

        4)、此时我们用ifconfig命令查看时我们的地址只会显示我们的地址192.168.10.61,如果要显示其它地址的话我们需要为额外添加的地址指明对应的接口别名;

[root@wohaoshuai1 ~]# ip addr add 1.1.10.100/8 dev ens37 label ens37:0
[root@wohaoshuai1 ~]# ip addr list ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.61/24 scope global ens37
       valid_lft forever preferred_lft forever
    inet 10.0.10.100/8 scope global ens37
       valid_lft forever preferred_lft forever
    inet 1.1.10.100/8 scope global ens37:0
       valid_lft forever preferred_lft forever
    inet 192.168.10.62/24 scope global secondary ens37
       valid_lft forever preferred_lft forever

        5)、此时我们通过ifconfig命令就可以看到对应的接口别名和对应的IP

[root@wohaoshuai1 ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.41  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::2af8:1ecb:eb2c:861f  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:76:9f:f6  txqueuelen 1000  (Ethernet)
        RX packets 664  bytes 75801 (74.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 450  bytes 77010 (75.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.61  netmask 255.255.255.0  broadcast 0.0.0.0
        ether 00:0c:29:76:9f:00  txqueuelen 1000  (Ethernet)
        RX packets 584  bytes 48720 (47.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 539  bytes 69880 (68.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens37:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 1.1.10.100  netmask 255.0.0.0  broadcast 0.0.0.0
        ether 00:0c:29:76:9f:00  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 208  bytes 14400 (14.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 208  bytes 14400 (14.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

      (2)、ip address delete :删除一个IP地址(delete protocol address)

          ip addr delete IFADDR dev IFACE

            [label NAME]:为额外添加的地址指明接口别名

            [broadcast ADDRESS]:广播地址,会根据IP和NETMASK自动计算得到

            [scope SCOPE_VALUE]:

              global:全局可用

              link:接口可用

              host:仅本机可用

        1)、现在我们来删除网卡ens37上的其中一个地址

[root@wohaoshuai1 ~]# ip addr show ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.61/24 scope global ens37
       valid_lft forever preferred_lft forever
    inet 10.0.10.100/8 scope global ens37
       valid_lft forever preferred_lft forever
    inet 1.1.10.100/8 scope global ens37:0
       valid_lft forever preferred_lft forever
    inet 192.168.10.62/24 scope global secondary ens37
       valid_lft forever preferred_lft forever
[root@wohaoshuai1 ~]# ip addr del 10.0.10.100/8 dev ens37
[root@wohaoshuai1 ~]# ip addr show ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.61/24 scope global ens37
       valid_lft forever preferred_lft forever
    inet 1.1.10.100/8 scope global ens37:0
       valid_lft forever preferred_lft forever
    inet 192.168.10.62/24 scope global secondary ens37
       valid_lft forever preferred_lft forever

      (3)、ip address show :查看一个IP地址(look at protocol addresses)

          ip addr list/show 

            [IFACE]:显示指定接口的信息

[root@wohaoshuai1 ~]# ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.41/24 brd 192.168.10.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::2af8:1ecb:eb2c:861f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::ab38:1308:dcd7:37ec/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

        也可以写作 ip add list

      (4)、ip address flush:清空接口所有的IP地址,假如一个接口配了多个IP那么所有的IP都会被删除掉

          ip addr slush dev IFACE

        1)、现在我们来清空我们设备ens37上的所有IP

[root@wohaoshuai1 ~]# ip addr show ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.61/24 scope global ens37
       valid_lft forever preferred_lft forever
    inet 1.1.10.100/8 scope global ens37:0
       valid_lft forever preferred_lft forever
    inet 192.168.10.62/24 scope global secondary ens37
       valid_lft forever preferred_lft forever
[root@wohaoshuai1 ~]# ip addr flush dev ens37
[root@wohaoshuai1 ~]# ip addr show ens37 
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff

    d、ip route

      (1)、ip route add:添加路由

      (2)、ip route change:修改路由

      (3)、ip route replace:替换路由,有老的路由就替换掉,没有老的路由就添加进去

        ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]

        #via字段是指经由的意思

        1)、我们来添加一个网络路由:到192.168.0.0/24这个网络的数据包下一跳要经过10.0.10.2(这个IP要和网卡的某个IP在同一地址段中),要经过的网卡是ens37

[root@wohaoshuai1 ~]# ip addr list ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
    inet 10.0.10.100/8 scope global ens37
       valid_lft forever preferred_lft forever
    inet 10.0.20.100/8 scope global secondary ens37
       valid_lft forever preferred_lft forever
[root@wohaoshuai1 ~]# ip route add 192.168.0.0/24 via 10.0.10.2 dev ens37
[root@wohaoshuai1 ~]# ip route show
default via 192.168.10.2 dev ens33 proto static metric 100 
10.0.0.0/8 dev ens37 proto kernel scope link src 10.0.10.100 
192.168.0.0/24 via 10.0.10.2 dev ens37 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.41 metric 100 

        2)、我们再添加一条路由,这次我们指定src为ens37上的第二地址,即我们包的源IP地址为ens37上的第二地址

[root@wohaoshuai1 ~]# ip route add 192.168.1.0/24 via 10.0.0.1 dev ens37  src 10.0.20.100 
[root@wohaoshuai1 ~]# ip route list 
default via 192.168.10.2 dev ens33 proto static metric 100 
10.0.0.0/8 dev ens37 proto kernel scope link src 10.0.10.100 
192.168.0.0/24 via 10.0.10.2 dev ens37 
192.168.1.0/24 via 10.0.0.1 dev ens37 src 10.0.20.100 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.41 metric 100 

          此时我们可以看到这条路由条目中就有了src(源IP地址)为我们指定的10.0.20.100了。如果我们不加src参数,数据报文出去的时候默认就是带着我们ens37的第一地址10.0.10.100,也就是出去的源IP地址为10.0.10.100

        3)、现在我们来添加一个默认网关:默认出去的网络下一跳跳到192.168.10.2这个地址上(注意主机上要有和这个网络在同一网段的地址),并且从网卡ens33出去

[root@wohaoshuai1 ~]# ip route add default via 192.168.10.2 dev ens33
[root@wohaoshuai1 ~]# ip route list
default via 192.168.10.2 dev ens33 
default via 192.168.10.2 dev ens33 proto static metric 100 
10.0.0.0/8 dev ens37 proto kernel scope link src 10.0.10.100 
192.168.0.0/24 via 10.0.10.2 dev ens37 
192.168.1.0/24 via 10.0.0.1 dev ens37 src 10.0.20.100 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.41 metric 100 

      (4)、ip route delete:删除路由

        ip route del TYPE PRIFIX

        1)、现在我们来删除一条路由

[root@wohaoshuai1 ~]# ip route list
default via 192.168.10.2 dev ens33 
default via 192.168.10.2 dev ens33 proto static metric 100 
10.0.0.0/8 dev ens37 proto kernel scope link src 10.0.10.100 
192.168.0.0/24 via 10.0.10.2 dev ens37 
192.168.1.0/24 via 10.0.0.1 dev ens37 src 10.0.20.100 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.41 metric 100 
[root@wohaoshuai1 ~]# ip route delete 192.168.1.0/24
[root@wohaoshuai1 ~]# ip route list
default via 192.168.10.2 dev ens33 
default via 192.168.10.2 dev ens33 proto static metric 100 
10.0.0.0/8 dev ens37 proto kernel scope link src 10.0.10.100 
192.168.0.0/24 via 10.0.10.2 dev ens37 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.41 metric 100 

      (5)、ip route show/list:显示路由

      (6)、ip route flush:清空路由表

          TYPE PRIFIX 

          我们只需要指定相应的网络地址即可,接下来我们来删除一条路由(注意,本机上的路由是没法删掉的)

[root@wohaoshuai1 ~]# ip route list 
default via 192.168.10.2 dev ens33 proto static metric 100 
10.0.0.0/8 dev ens37 proto kernel scope link src 10.0.10.100 
192.168.0.0/24 via 10.0.10.2 dev ens37 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.41 metric 100 
[root@wohaoshuai1 ~]# ip route flush 192.168/24
[root@wohaoshuai1 ~]# ip route list 
default via 192.168.10.2 dev ens33 proto static metric 100 
10.0.0.0/8 dev ens37 proto kernel scope link src 10.0.10.100 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.41 metric 100 

      (7)、ip route get :获取一个路由信息

          ip route get TYPE PRIFIX

[root@wohaoshuai1 ~]# ip route list 
default via 192.168.10.2 dev ens33 proto static metric 100 
10.0.0.0/8 dev ens37 proto kernel scope link src 10.0.10.100 
192.168.0.0/24 via 10.0.10.2 dev ens37 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.41 metric 100 
[root@wohaoshuai1 ~]# ip route get 192.168.10.0/24
broadcast 192.168.10.0 dev ens33 src 192.168.10.41 
    cache <local,brd> 
[root@wohaoshuai1 ~]# ip route get 192.168.0.0/24
192.168.0.0 via 10.0.10.2 dev ens37 src 10.0.10.100 
    cache 
[root@wohaoshuai1 ~]# ip route get 10.0.0.0/8
broadcast 10.0.0.0 dev ens37 src 10.0.10.100 
    cache <local,brd> 
[root@wohaoshuai1 ~]# ip add list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.41/24 brd 192.168.10.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::2af8:1ecb:eb2c:861f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
    inet 10.0.10.100/8 scope global ens37
       valid_lft forever preferred_lft forever
    inet 10.0.20.100/8 scope global secondary ens37
       valid_lft forever preferred_lft forever

  2、ss命令

    a、命令

      ss [options] [ FILTER ]

      (1)选项:

        -t:TCP协议相关的连接

        -u:UDP相关的连接

        -w:raw socket(裸套接字)相关的连接

        -l:监听状态的连接

        -a:所有状态的连接

        -n:数字格式

        -p:相关的程序及其PID

        -e:扩展格式信息

        -m:内存用量

        -o:计时器信息

        FILTER := [ state STATE-FILTER ] [ EXPRESSION ]

      (2)TCP的常见状态

        TCP FSM:

          LISTEN:监听

          ESTABLISEHD:建立的连接

          FIN_WAIT_1:

          FIN_EAIT_2:

          SYN_SENT:

          SYN_RECV:

          CLOSED:

      (3)、FILTER := [ state STATE-FILTER ] [ EXPRESSION ]中的EXPRESSION

        EXPRESSION:

          dport= 源端口

          sport=

            示例:’( dport = :22 or sport = :22 )‘

[root@wohaoshuai1 ~]# ss -ant state ESTABLISHED
Recv-Q Send-Q                                                                Local Address:Port                                                                               Peer Address:Port              
0      52                                                                    192.168.10.41:22                                                                                 192.168.10.1:49940 
[root@wohaoshuai1 ~]# ss -ant state ESTABLISHED '( dport = :22 or sport = :22 )'
Recv-Q Send-Q                                                                Local Address:Port                                                                               Peer Address:Port              
0      52                                                                    192.168.10.41:22                                                                                 192.168.10.1:49940 

二、通过修改配置文件配置网络属性

  1、配置文件为 /etc/sysconfig/network-scripts/ifcfg-IFACE,IP/NETMASK/GW/DNS等属性的配置文件都在此文件中配置

  2、路由相关的配置文件为/etc/sysconfig/network

  3、配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性,其可通过vim等文本编辑器直接修改,也可以使用专用的命令进行修改(CentOS6:system-config-network[setup],CentOS7:nmtui)      

  4、ifcfg-IFACE配置文件参数

    a、相应参数(CentOS7)

      DEVICE:此配置文件对应的设备的名称,此设备名称必须要和文件名ifcfg-IFACE中的IFACE保持一致。

      ONBOOT:在系统引导过程中是否激活此接口

      UUID:此设备的唯一标识

      IPV6INIT:是否初始化IPV6协议栈

      BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp,bootp,static,none

      TYPE:接口类型,常见的有ethernet,Bridge

      DNS1:第一DNS服务器指向;

      DNS2:备用DNS服务器指向

      DOMAIN:DNS搜索域;

      IPADDR:IP地址

      NETMASK:子网掩码;CentOS7支持使用PREFIX以长度方式指明子网掩码

      GATEWAY:默认网关

      USERCTL:是否允许普通用户控制此设备

      PEERDNS:如果BOOTPROTO的值为dhcp,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向,默认为YES,即允许

      HWADDR:设备的MAC地址,如果给的话一定是复制的网卡的MAC,或者直接删掉该选项

      NM_CONTROLLED:对CentOS来讲很有用,表示是否使用NetworkManager服务来控制接口。我们操作系统开机以后为什么会读取这个配置文件来配置网络接口相关属性之类呢?是因为我们主机开机时有一个服务程序会读取这个配置文件并通过这个配置文件中加载各种参数的值然后用命令把他配置到接口上,所以在内核才能生效。此网络服务对CentOS6来讲有两个,一个叫做network,另一个叫做NetworkManager,对CentOS6来讲NetworkManager还处于不够完善阶段,因此我们建议都使用network,并且我们做集群或者虚拟化的桥接接口时我们都只能使用network,第二种都不支持。因此此选项选择yes的话很多网络的高级功能都不支持了,因此我们一般都设置为no,并且禁掉NetworkManager这个服务即可。

    b、配置文件修改之后,需要重启网络服务

      CentOS6:service network restart

      CentOS7: systemctl restart network.service

  5、网络服务

    a、网络服务名称

      network

      NetworkManager

    b、管理网络服务

      (1)、CentOS 6: service SERVICE {start|stop|restart|status}

      (2)、CentOS 7:systemctl {start|stop|restart|status} SERVICE{.service}

  6、用到非默认网关路由,我们想永久有效可用编辑:/etc/sysconfig/network-scripts/route-IFACE支持两种配置方式,但是不可混用

    a、每行一个路由条目:

      TARGET via GW

[root@wohaoshuai1 /]# cat /etc/sysconfig/network-scripts/route-ens33 
10.0.0.0/24 via 192.168.10.2
192.168.20.0/24 via 192.168.10.2
[root@wohaoshuai1 /]# ip route list
default via 192.168.10.2 dev ens33 proto static metric 100 
default via 192.168.10.2 dev ens37 proto static metric 101 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.41 metric 100 
192.168.10.0/24 dev ens37 proto kernel scope link src 192.168.10.51 metric 101 
[root@wohaoshuai1 /]# systemctl restart network
[root@wohaoshuai1 /]# ip route list
default via 192.168.10.2 dev ens33 proto static metric 100 
default via 192.168.10.2 dev ens37 proto static metric 101 
10.0.0.0/24 via 192.168.10.2 dev ens33 proto static metric 100 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.41 metric 100 
192.168.10.0/24 dev ens37 proto kernel scope link src 192.168.10.51 metric 101 
192.168.20.0/24 via 192.168.10.2 dev ens33 proto static metric 100 

    b、每三行一个路由条目

      ADDRESS#=TARGET

      NETMASK#=MASK

      GATEWAY#=NEXTHOP

[root@wohaoshuai1 network-scripts]# vim route-ens33 
[root@wohaoshuai1 network-scripts]# systemctl restart network
[root@wohaoshuai1 network-scripts]# ip route list 
default via 192.168.10.2 dev ens33 proto static metric 100 
default via 192.168.10.2 dev ens37 proto static metric 101 
20.0.0.0/8 via 192.168.10.2 dev ens33 proto static metric 100 
30.0.0.0/8 via 192.168.10.2 dev ens33 proto static metric 100 
192.168.10.0/24 dev ens33 proto kernel scope link src 192.168.10.41 metric 100 
192.168.10.0/24 dev ens37 proto kernel scope link src 192.168.10.51 metric 101 
[root@wohaoshuai1 network-scripts]# cat /etc/sysconfig/network-scripts/route-ens33 
ADDRESS0=20.0.0.0 #0表示第0组
NETMASK0=255.0.0.0
GATEWAY0=192.168.10.2
ADDRESS1=30.0.0.0  #1表示第一组
NETMASK1=255.0.0.0
GATEWAY1=192.168.10.2

  7、给接口配置多个地址

    a、ip addr命令

    b、ifconfig命令(配置后重启network服务就没了)

      ifconfig IFACE_LABEL IPADDR/NETMASK

        IFACE_LABEL:eth0:0,eth0:1

[root@wohaoshuai1 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.41/24 brd 192.168.10.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::2af8:1ecb:eb2c:861f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.51/24 brd 192.168.10.255 scope global noprefixroute ens37
       valid_lft forever preferred_lft forever
    inet6 fe80::6385:1e32:23c6:6257/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@wohaoshuai1 /]# ifconfig ens37:0 192.168.10.52/24
[root@wohaoshuai1 /]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.41  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::2af8:1ecb:eb2c:861f  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:76:9f:f6  txqueuelen 1000  (Ethernet)
        RX packets 3897  bytes 393994 (384.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2553  bytes 760771 (742.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.51  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::6385:1e32:23c6:6257  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:76:9f:00  txqueuelen 1000  (Ethernet)
        RX packets 14  bytes 840 (840.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 704  bytes 120788 (117.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens37:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.52  netmask 255.255.255.0  broadcast 192.168.10.255
        ether 00:0c:29:76:9f:00  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 508  bytes 41388 (40.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 508  bytes 41388 (40.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    c、配置文件

      DEVICE=IFACE_LABEL

      BOOTPROTO:网卡别名不支持动态获取地址,因此只能为static或者none

[root@wohaoshuai1 /]# cat /etc/sysconfig/network-scripts/ifcfg-ens37:0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37:0
DEVICE=ens37:0
ONBOOT=yes
IPADDR=192.168.10.52
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
DNS1=114.114.114.114
[root@wohaoshuai1 /]# systemctl restart network
[root@wohaoshuai1 /]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.41  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::2af8:1ecb:eb2c:861f  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:76:9f:f6  txqueuelen 1000  (Ethernet)
        RX packets 4273  bytes 425230 (415.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2782  bytes 806973 (788.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.51  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::6385:1e32:23c6:6257  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:76:9f:00  txqueuelen 1000  (Ethernet)
        RX packets 17  bytes 1020 (1020.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 715  bytes 121598 (118.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens37:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.52  netmask 255.255.255.0  broadcast 192.168.10.255
        ether 00:0c:29:76:9f:00  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 586  bytes 49482 (48.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 586  bytes 49482 (48.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  8、nmcli命令

    nmcli [OPTIONS...] OBJECT {COMMAND | help}

    a、device - show and manage network interfaces

      COMMAND := {status | show | connect | disconnect | delete | wifi | winax}

      (1)、查看设备信息

[root@wohaoshuai1 ~]# nmcli device show
[root@wohaoshuai1 ~]# nmcli device show 
GENERAL.DEVICE:                         ens33
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:76:9F:F6
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens33
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.10.41/24
IP4.GATEWAY:                            192.168.10.2
IP4.ROUTE[1]:                           dst = 192.168.10.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.10.2, mt = 100
IP4.ROUTE[3]:                           dst = 20.0.0.0/8, nh = 192.168.10.2, mt = 100
IP4.ROUTE[4]:                           dst = 30.0.0.0/8, nh = 192.168.10.2, mt = 100
IP4.DNS[1]:                             114.114.114.114
IP6.ADDRESS[1]:                         fe80::2af8:1ecb:eb2c:861f/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[2]:                           dst = fe80::/64, nh = ::, mt = 256
IP6.ROUTE[3]:                           dst = fe80::/64, nh = ::, mt = 100

GENERAL.DEVICE:                         ens37
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:76:9F:00
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens37
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/4
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.10.51/24
IP4.ADDRESS[2]:                         192.168.10.52/24
IP4.GATEWAY:                            192.168.10.2
IP4.ROUTE[1]:                           dst = 192.168.10.0/24, nh = 0.0.0.0, mt = 101
IP4.ROUTE[2]:                           dst = 192.168.10.0/24, nh = 0.0.0.0, mt = 101
IP4.ROUTE[3]:                           dst = 0.0.0.0/0, nh = 192.168.10.2, mt = 101
IP4.DNS[1]:                             114.114.114.114
IP6.ADDRESS[1]:                         fe80::6385:1e32:23c6:6257/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[2]:                           dst = fe80::/64, nh = ::, mt = 256
IP6.ROUTE[3]:                           dst = fe80::/64, nh = ::, mt = 101

GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10 (unmanaged)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --

      (2)、查看设备状态

[root@wohaoshuai1 ~]# nmcli device status
DEVICE  TYPE      STATE      CONNECTION 
ens33   ethernet  connected  ens33      
ens37   ethernet  connected  ens37      
lo      loopback  unmanaged  --

      (3)、从状态可以看出ens33和ens37都是启用的,现在我们来禁用或启用ens37

[root@wohaoshuai1 ~]# nmcli device disconnect ens37 
Device 'ens37' successfully disconnected.
[root@wohaoshuai1 ~]# nmcli device status
DEVICE  TYPE      STATE         CONNECTION 
ens33   ethernet  connected     ens33      
ens37   ethernet  disconnected  --         
lo      loopback  unmanaged     --         
[root@wohaoshuai1 ~]# nmcli device connect ens37 
Device 'ens37' successfully activated with '4a5516a4-dfa4-24af-b1c4-e843e312e2fd'.
[root@wohaoshuai1 ~]# nmcli device status 
DEVICE  TYPE      STATE      CONNECTION 
ens33   ethernet  connected  ens33      
ens37   ethernet  connected  ens37      
lo      loopback  unmanaged  --  

    b、conntion

      (1)、查看接口信息

[root@wohaoshuai1 ~]# nmcli connection show
NAME   UUID                                  TYPE      DEVICE 
ens33  344cff30-6811-4c0a-9b89-b4b14937a350  ethernet  ens33  
ens37  4a5516a4-dfa4-24af-b1c4-e843e312e2fd  ethernet  ens37

      (2)、我们来禁用一个接口

[root@wohaoshuai1 ~]# nmcli connection down ens37 
Connection 'ens37' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@wohaoshuai1 ~]# nmcli connection show
NAME   UUID                                  TYPE      DEVICE 
ens33  344cff30-6811-4c0a-9b89-b4b14937a350  ethernet  ens33  
ens37  4a5516a4-dfa4-24af-b1c4-e843e312e2fd  ethernet  --  

      (3)、我们现在来给某个网卡设置一个地址

[root@wohaoshuai1 ~]# nmcli connection down ens37 
Connection 'ens37' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@wohaoshuai1 ~]# nmcli connection show 
NAME   UUID                                  TYPE      DEVICE 
ens33  344cff30-6811-4c0a-9b89-b4b14937a350  ethernet  ens33  
ens37  4a5516a4-dfa4-24af-b1c4-e843e312e2fd  ethernet  --     
[root@wohaoshuai1 ~]# nmcli connection modify ens37 +ipv4.address 192.168.10.53
[root@wohaoshuai1 ~]# nmcli connection up ens37 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
[root@wohaoshuai1 ~]# nmcli device show ens37 
GENERAL.DEVICE:                         ens37
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:76:9F:00
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens37
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.10.51/24
IP4.ADDRESS[2]:                         192.168.10.53/32
IP4.ADDRESS[3]:                         192.168.10.52/24
IP4.GATEWAY:                            192.168.10.2
IP4.ROUTE[1]:                           dst = 192.168.10.0/24, nh = 0.0.0.0, mt = 101
IP4.ROUTE[2]:                           dst = 192.168.10.53/32, nh = 0.0.0.0, mt = 101
IP4.ROUTE[3]:                           dst = 192.168.10.0/24, nh = 0.0.0.0, mt = 101
IP4.ROUTE[4]:                           dst = 0.0.0.0/0, nh = 192.168.10.2, mt = 101
IP4.DNS[1]:                             114.114.114.114
IP6.ADDRESS[1]:                         fe80::6385:1e32:23c6:6257/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[2]:                           dst = fe80::/64, nh = ::, mt = 256
IP6.ROUTE[3]:                           dst = fe80::/64, nh = ::, mt = 101

    c、ethtool

    

原文地址:https://www.cnblogs.com/Presley-lpc/p/12397280.html