Linux学习45 Linux网络相关属性配置管理和应用

一、回顾

  1、计算机网络基础,Linux网络属性配置

    a、TCP/IP协议栈:物理层,互联网层,传输层,应用层

      互联网层:IP

      传输层:TCP,UDP

      应用层:http,https,ftp,ldap,...

    b、链接路层:以太网帧

    c、互联网层:IP报文

    d、以太网帧:最大传输单元是MTU,是1500个字节,因为我们以太网帧自己守护还要占据一些内容,比如源mac,目标mac等,因此留给IP报文的只有一千四百多个字节了。这就意味着我们每一个文件就要拆分成大小为一千多个字节的一个又一个报文来分别传送的。

  2、Linux网络属性配置:命令,配置文件

二、Linux网络属性配置(2)

  1、ifcfg命令家族:ifconfig,route,netstat

  2、ifconfig命令:接口及地址查看和管理

    a、ifconfig [INTERFACE]

      查看具体某个网卡信息

[root@localhost ~]# ifconfig ens33

      ifconfig -a:显示所有接口,包括非激活状态的

[root@localhost ~]# ifconfig -a

      查看激活的网卡信息

[root@localhost ~]# 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 65  bytes 6650 (6.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 65  bytes 8258 (8.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

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 42  bytes 4554 (4.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 42  bytes 4554 (4.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0    

        flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500:此段表示网卡处于UP状态,也就是激活状态。BROADCAST表示支持广播功能,MULTICAST表示支持组播或多播功能。RUNNING表示处于运行中。mtu 1500表示网卡最大的传输单元不超过1500个字节。

        inet 192.168.10.41  netmask 255.255.255.0  broadcast 192.168.10.255:此段表示网卡的IP地址,子网掩码,以及广播地址为192.168.10.255

        inet6 fe80::2af8:1ecb:eb2c:861f  prefixlen 64  scopeid 0x20<link>:此段表示IPV6及其相关信息

         ether 00:0c:29:76:9f:f6  txqueuelen 1000  (Ethernet):此段表示网卡的mac地址为00:0c:29:76:9f:f6,txqueuelen表示传输队列长度为1000

        RX packets 150 bytes 13566 (13.2 KiB):此段 RX packets表示网卡激活以后所接收到的报文的数量为150个,这些报文加起来总大小字节为13566,换算到K为单位为13.2KiB

        RX errors 0  dropped 0  overruns 0  frame 0:此段表示接收时的错误(errors)个数为0个,丢包(dropped)数量为0个,溢出(overruns)为0个,帧为0个 

        TX packets 128 bytes 15084 (14.7 KiB):TX表示传出去的数据报文为128个,总计15084字节,大小为14.7KiB

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0:此处表示传出去的错误个数为0个,丢包数量为0个,搬运个数为0,冲突(collisions )的个数为0

    b、ifconfig命令用法二

      ifconfig  interface [aftype] options | address ... 

      (1)、注意此种命令方式修改的配置信息会立即送往内核中的TCP/IP协议栈中并立即生效

      (2)、ifconfig IFACE IP/MASK [up]

[root@localhost ~]# ifconfig ens37 192.168.10.51/24 up

      (3)、ifconfig IFACE IP NETMASK

[root@localhost ~]# ifconfig ens37 192.168.10.61 netmask 255.255.255.0

      (4)、options

        [-] promisc:启用或关闭混杂模式功能,其它功能启用和关闭方式也一样

[root@localhost ~]# ifconfig ens37 promisc
[root@localhost ~]# ifconfig ens37 
ens37: flags=4419<UP,BROADCAST,RUNNING,PROMISC,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 345  bytes 28427 (27.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 256  bytes 56574 (55.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# ifconfig ens37 -promisc
[root@localhost ~]# 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 369  bytes 30511 (29.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 273  bytes 58874 (57.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

      (5)、管理IPV6地址

        增加IPV6地址:ifconfig  INTERFACE  add addr/prefixlen(地址/掩码)

        删除IPV6地址:ifconfig  INTERFACE  del addr/prefixlen

   3、route命令:路由查看及管理

    a、路由条目类型

      主机路由:目标地址为单个IP;

      网络路由:目标地址为IP网络

      默认路由:目标为任意主机,0.0.0.0/0.0.0.0

    b、如果加 -n参数会在相应的路由表中将对应的主机名解析为IP地址,如果不加-n参数则不会解析

    c、查看

      route -n :以数字格式来显示路由信息而不要反解地址和端口号

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG    100    0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 ens37
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33

      Destination:表示target,即目标网络

      Genmask:表示掩码地址,即目标网络的掩码地址

      Gateway:表示下一跳网关地址,0.0.0.0表示这是本地主机的网络地址,意思是我自己的主机就在网络上,因此不需要任何网关,即无需网关,也叫直连路由

      Flags:表示路由条目的标志,U表示UP,表示启用状态,G表示Gateway,表示网关。网关不一定是默认网关,我们任何一个路由条目只要带有效下一跳地址的都可以认为是一个网关。只有目标网络是0.0.0.0的网关才叫默认网关。

      Metric:表示度量值,表示到达这个网络我们中间要经过的开销

      Iface:表示经过本地的哪一个接口

    d、添加路由条目

      route  add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

      (1)、网络路由:添加一个路由条目

[root@localhost ~]# route add -net 10.0.0.0/8 gw 192.168.10.2 dev ens33
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG    100    0        0 ens33
10.0.0.0        192.168.10.2    255.0.0.0       UG    0      0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 ens37
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33

        上述命令也可写作

[root@localhost ~]# route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.10.2 dev ens33

        表示的意思是,添加一个路由,想到达10.0.0.0掩码为8位的网络,要经过192.168.10.2这一个下一跳地址并且从网卡ens33出去。(默认可不指网卡,系统会自己判断,但是最好还是指定的好)

      (2)、默认路由:添加一个默认路由

[root@localhost ~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.10.2 dev ens33

        上述命令也可写作

[root@localhost ~]# route add default  gw 192.168.10.2 dev ens33

        上述命令还可以写作

[root@localhost ~]# route add -net 0.0.0.0/0 gw 192.168.10.2

      (3)、主机路由:添加一个主机路由:通往主机192.168.20.61地址的数据包下一跳跳到192.168.10.2并且要经过网卡ens33

[root@localhost ~]# route add -host 192.168.20.61  gw 192.168.10.2 dev ens33
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG    100    0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.61   192.168.10.2    255.255.255.255 UGH   0      0        0 ens33

    e、删除路由

      route  del [-net|-host] target [gw Gw] [netmask Nm]   [[dev] If]

       (1)、删除刚刚的网络路由条目

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG    100    0        0 ens33
10.0.0.0        192.168.10.2    255.0.0.0       UG    0      0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.61   192.168.10.2    255.255.255.255 UGH   0      0        0 ens33
[root@localhost ~]# route del -net 10.0.0.0/8 
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG    100    0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.61   192.168.10.2    255.255.255.255 UGH   0      0        0 ens33

        上述命令中可以默认不写相应的网关,因此命令还可写作

[root@localhost ~]# route del -net 10.0.0.0/8 gw 192.168.10.2

      (2)、现在我们来删除默认路由

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG    100    0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.61   192.168.10.2    255.255.255.255 UGH   0      0        0 ens33
[root@localhost ~]# route del -net 0.0.0.0
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.61   192.168.10.2    255.255.255.255 UGH   0      0        0 ens33

        上述命令还可以写作

[root@localhost ~]# route del default

      (3)、现在我们来删除主机路由

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG    0      0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.61   192.168.10.2    255.255.255.255 UGH   0      0        0 ens33
[root@localhost ~]# route del -host 192.168.20.61
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG    0      0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33

  4、netstat命令

    a、netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships(netstat 用于网络连接,路由表,接口统计数据,伪装连接,和多播成员关系)

    b、显示路由表信息:

      netstat -rn。和route -n相似

      -r:显示内核路由表

      -n:数字格式

[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG        0 0          0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG    0      0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33

    c、显示网络连接

      (1)netstat [--tcp|-t]  [--udp|-u] [--udplite|-U]  [--sctp|-S]  [--raw|-w]  [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p] 

        -t:TCP协议的相关连接,连接均有其状态;并且每一个连接的状态都是在其有限状态机之内的各种状态之间进行转换的FSM(Finate State Machine),即有限的状态机。

[root@localhost ~]# netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost.localdoma:ssh 192.168.10.1:50435      ESTABLISHED
tcp        0     52 localhost.localdoma:ssh 192.168.10.1:50204      ESTABLISHED

        -u:UDP协议相关的连接

[root@localhost ~]# netstat -nu
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State

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

        -l:处于监听状态的连接。即等待别人访问的,不加l表示已经建立的正在进行通信的处于某个状态的连接

[root@localhost ~]# netstat -nul
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:855             0.0.0.0:*                          
udp        0      0 0.0.0.0:111             0.0.0.0:*                          
udp        0      0 0.0.0.0:55485           0.0.0.0:*                          
udp6       0      0 :::855                  :::*                               
udp6       0      0 :::111                  :::*  
[root@localhost ~]# netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp6       0      0 :::111                  :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN     

        -a:所有状态,即当前处于连接和监听的所有状态的连接

[root@localhost ~]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 192.168.10.41:22        192.168.10.1:50435      ESTABLISHED
tcp        0     52 192.168.10.41:22        192.168.10.1:50204      ESTABLISHED
tcp6       0      0 :::111                  :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN    
[root@localhost ~]# netstat -nau
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:855             0.0.0.0:*                          
udp        0      0 0.0.0.0:68              0.0.0.0:*                          
udp        0      0 0.0.0.0:111             0.0.0.0:*                          
udp        0      0 0.0.0.0:55485           0.0.0.0:*                          
udp6       0      0 :::855                  :::*                               
udp6       0      0 :::111                  :::*     

        -n:以数字格式显示IP和Port

[root@localhost ~]# netstat -nt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 192.168.10.41:22        192.168.10.1:50435      ESTABLISHED
tcp        0     52 192.168.10.41:22        192.168.10.1:50204      ESTABLISHED

          显示结果中:

            Proto:表示协议

            Recv-Q:接收队列长度

            Send-Q:发送队列长度

            Local Address:本机地址

            Foreign Address:远程地址

            State:连接状态

        -e:扩展格式

[root@localhost ~]# netstat -tne
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode     
tcp        0      0 192.168.10.41:22        192.168.10.1:50435      ESTABLISHED 0          22282     
tcp        0     52 192.168.10.41:22        192.168.10.1:50204      ESTABLISHED 0          20548 
[root@localhost ~]# netstat -unea
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode     
udp        0      0 0.0.0.0:855             0.0.0.0:*                           0          16288     
udp        0      0 0.0.0.0:111             0.0.0.0:*                           0          16287     
udp        0      0 0.0.0.0:55485           0.0.0.0:*                           89         21256     
udp6       0      0 :::855                  :::*                                0          16291     
udp6       0      0 :::111                  :::*                                0          16290

          Inode:Linux一切皆文件,因此网络连接也是通过文件来实现的,只不过这叫套接字文件,每建立一个连接都要打开一个套接字,为了保存这个套接字的状态就需要套接字文件来实现,Inode就表示这个对应的套接字文件的Inode号

        -p:显示相关的进程及PID

[root@localhost ~]# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      685/rpcbind         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      975/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1056/master         
tcp        0      0 192.168.10.41:22        192.168.10.1:50435      ESTABLISHED 1341/sshd: root@pts 
tcp        0     52 192.168.10.41:22        192.168.10.1:50204      ESTABLISHED 1106/sshd: root@pts 
tcp6       0      0 :::111                  :::*                    LISTEN      685/rpcbind         
tcp6       0      0 :::22                   :::*                    LISTEN      975/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1056/master 

      (2)、常用组合

        -tan,-uan,-tnl,-unl,-tunlp

      (3)、传输层协议

        tcp:面向连接的协议;通信开始之前要建立一个虚链路;通信完成后还要拆除连接

        udp:无连接的协议;直接发送数据报文;

     d、显示接口的统计数据

      netstat {--interfaces|-I|-i} [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n]

      (1)、显示所有接口

[root@localhost ~]# netstat -i
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33     1500     3472      0      0 0          2205      0      0      0 BMRU
ens37     1500       22      0      0 0           967      0      0      0 BMRU
lo       65536      376      0      0 0           376      0      0      0 LRU

      (2)、显示指定接口

[root@localhost ~]# netstat -Iens33 #注意-I参数后没有空格
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33     1500     3505      0      0 0          2227      0      0      0 BMRU

  5、另外两个操作网卡的命令。注意,这两个命令通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置。

    a、ifup  ens33

    b、ifdown  ens33

  6、配置主机名

    a、hostname命令

      查看:hostname

      CentOS6配置:hostname HOSTNAME  #只是立即生效但是不会永久生效,如果重启了操作系统就无效了

    b、CentOS7中hostnamectl命令

      (1)、查看当前主机信息

        hostnamectl status

[root@localhost ~]# hostnamectl status 
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: a110a6f3f3cf42f4a2355116c5210886
           Boot ID: e8b34ae30ec643af83e5592d397624e3
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-862.el7.x86_64
      Architecture: x86-64

      (2)、设定主机名,设定完以后会永久有效

[root@wohaoshuai1 ~]# hostnamectl set-hostname wohaoshuai1

    c、配置文件配置主机名

      CentOS6:我们也可以编辑配置文件/etc/sysconfig/network设定主机名,但是改了配置文件后不会立即生效,我们需要重启系统或者重读此文件才能有效。

[root@wohaoshuai1 ~]# cat /etc/sysconfig/network
# Created by anaconda
HOSTNAME=www.wohaoshuai.com

      CentOS7:CentOS7的主机名配置文件是/etc/hostname,我们编辑此文件写上我们的主机名即可,不过也需要重启系统才会生效,不过我们也可以使用hostnamectl命令修改主机名并且永久生效

[root@wohaoshuai1 ~]# cat /etc/hostname 
wohaoshuai1

  7、配置DNS服务器指向

    a、一般通过编辑配置文件:  /etc/resolv.conf 实现

      nameserver DNS_SERVER_IP,最多只能有三个

[root@wohaoshuai1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114

    b、如何测试(host/nslookup/dig):

      (1)、主机完成主机名或DNS解析时会先找本地的 /etc/hosts文件,如果找不到就会再去找/etc/resolv.conf文件找dns服务器

[root@wohaoshuai1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.61 www.wohaoshuai.com  www  wohaoshuai

      可以看到我们的主机192.168.10.61有三个别名分别为www.wohaoshuai.com  www和wohaoshuai

      (2)、测试dns服务器是否生效,使用dig命令进行测试,此命令不会检查/etc/hosts文件

        1)、dig -t A FQDN  #测试,将主机名转换成IP

[root@wohaoshuai1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.61 www.wohaoshuai.com
[root@wohaoshuai1 ~]# dig -t A www.wohaoshuai.com

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A www.wohaoshuai.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27115
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.wohaoshuai.com.        IN    A

;; ANSWER SECTION:
www.wohaoshuai.com.    254    IN    A    47.91.169.15

;; Query time: 8 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Mon Mar 02 03:48:47 CST 2020
;; MSG SIZE  rcvd: 63

        2)、dig  -x  47.91.169.15 #把IP转换成主机名,但是大多数服务器都不支持将IP转换成主机名

  8、iproute2家族

    a、ip命令:show / manipulate routing, devices, policy routing and tunnels(查看及管理路由,设备,策略路由以及隧道等相关功能)。

      格式:ip [ OPTIONS ] OBJECT { COMMAND | help }

        OBJECT := { link | address | route | netns }

      注意:OBJECT可简写,各OBJECT的子命令也可简写

      (1)、ip link:用来完成网络设备配置

        1)、ip link set :管理设备属性

          禁用或启用某块网卡: ip link set [dev] ens37 up/down #其中dev关键字可省略

[root@wohaoshuai1 ~]# ip link sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
[root@wohaoshuai1 ~]# ip link set ens37 down
[root@wohaoshuai1 ~]# ip link sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff

          启用或禁用多播功能:ip link set ens37  multicast on/off

[root@wohaoshuai1 ~]# ip li sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
[root@wohaoshuai1 ~]# ip link set dev ens37 multicast off
[root@wohaoshuai1 ~]# ip li sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff

          重命名网络接口:ip link set ens37 name ens377(需要先将接口down掉)

[root@wohaoshuai1 ~]# ip li sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
[root@wohaoshuai1 ~]# ip link set dev ens37 name ens377
[root@wohaoshuai1 ~]# ip link show 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff
3: ens377: <BROADCAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff

          设置MTU的大小,默认为1500:ip link set ens377 mtu 1200

          netns PID:将接口移动到指定的网络名称空间,ns为namespace。(具体见(2)中的实验)

        2)、ip link show :显示二层设备相关属性(还可以写作 ip link list,还可简写为ip li sh)

[root@wohaoshuai1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff

          字段分别为:

            flages

            qdisc:队列

            pfifo_fast:队列类型,先进先出类型

            state UP:

            qlen:支持的队列长度

            link/ether:mac地址

            brd:mac地址的广播地址

       (2)、ip netns (可通过ip netns help显示简要使用帮助)

        ip netns list #列出网络名称空间

        ip netns add NAME #添加一个网络名称空间

        ip netns del NAME #删除一个网络名称空间

        ip netns exec NAME COMMAND #进入相应的网络名称空间中执行命令

         1)、首先我们添加一个网络名称空间mynet

[root@wohaoshuai1 ~]# ip netns add mynet

        2)、然后我们将我们的网卡ens377挪到该网络名称空间中去,此时我们通过ip link show命令就查看不到这个网卡信息了

[root@wohaoshuai1 ~]# ip link show 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff
3: ens377: <BROADCAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff
[root@wohaoshuai1 ~]# ip link set ens377 netns mynet
[root@wohaoshuai1 ~]# ip link show 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff

        3)、此时我们的网卡ens377已经被挪到我们的mynet网络名称空间中去了,如果我们要查看到这个网卡信息我们需要像虚拟机一样登陆至我们的mynet网络名称空间查看

[root@wohaoshuai1 ~]# ip netns exec mynet ip link show
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
3: ens377: <BROADCAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff

        4)、然后我们现在删除我们的网络名称空间mynet,删除过后我们又可以看到我们的网卡ens377的信息了

[root@wohaoshuai1 ~]# ip netns del mynet
[root@wohaoshuai1 ~]# ip link show 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:f6 brd ff:ff:ff:ff:ff:ff
3: ens37: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:76:9f:00 brd ff:ff:ff:ff:ff:ff

...

          

    

  

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