Linux系统下网络管理命令和方法是Linux工作人员必学的技能,现将Liunx下常用网络管理命令和方法总结如一下:

网络管理的三大家族:ifcfg家族、iproute家族和修改配置文件。ifcfg和iproute特点是配置立即生效,但不长久生效,修改配置文件可长久生效,但不能立即生效,需要重新启动网络服务。现将分别介绍如下:


ifcfg家族:

  包括ifconfig、route、netstat三大命令。

  ifconfig命令:

    功能:configure a network interface,查看及配置网络接口;

    格式1:ifconfig [-v] [-a] [-s] [interface] 查看网络接口信息;

      常用选项:

        -a:显示所有接口信息,包括inactive状态的接口;

     -v和-s不常用不再介绍,可自己查阅学习。当不带选项时和接口时,只显示激活接口信息;

    格式2:ifconfig [-v] interface [aftype] options | address ... 配置网络接口

    配置方法# ifconfig  IFACE  IP/MASK  [up|down]

           # ifconfig  IFACE  IP  netmask  NETMASK 

       例如:将eth1接口ip地址设置为192.168.0.100/24,并激活接口。

       命令:ifconfig eth1 192.168.0.100/24 up 

         或 ifconfig eth1 192.168.0.100 netmask 255.255.255.0

       如图:

wKioL1bv94eC-Zm5AAAr-oPumJs711.png

      删除接口地址:ifconfig IFACE 0

          例如:删除eth1接口地址

wKioL1bw9jHQb9SaAAAk2-GX2lg708.png

   route命令:

    功能:show / manipulate the IP routing table,路由查看及管理;

    查看路由:route -n

           -n:以数字格式显示,不反解为主机名;路由条目多时可节省资源与时间;

wKioL1bv-UaQF6c2AAAeP-aqR8I969.png

    添加路由:route add [-net|-host] target [netmask Nm] [gw GW] [[dev] If]

           [-net|-host]:网络或主机路由;

            target [netmask Nm]:网络地址及掩码;

           [gw GW]:下一跳地址;

           [[dev] If]:本主机接口;

       示例:route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1

            route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1  

            route add default gw 192.168.10.1

       例如:在eth1接口添加到10.0.0.0/8的路由,下一跳地址为:192.168.0.1.

wKioL1bv_ASSYxIBAAApFprHH24828.png

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

       示例: route del -net 10.0.0.0/8 gw 192.168.10.1

             route del default

       例如:将上面加的路由删除

wKioL1bv_N6TJjNaAAAkgQE81eg018.png

    netstat命令:

     功能:显示路由表、网络连接和接口的统计数据;

      显示路由表:netstat -rn 同route -n

            -r:显示内核路由表

            -n:数字格式

wKiom1bwAnaQjJkjAAAd5AXvJC4430.png

    显示网络连接:

      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协议的相关连接,连接均有其状态;

          -u:UDP相关的连接;

          -w:raw socket相关的连接;

          -l:处于监听状态的连接;

          -a:所有状态;

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

          -e:扩展格式;

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

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

wKiom1bw0CbBmr17AAB9l30p5Po253.png

     显示接口的统计数据:

     netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--verbose|-v]  

         [--program|-p] [--numeric|-n] 

       所有接口:

 netstat  -i

wKiom1bw0SWB1VJ3AAAd2uPjQb0799.png

   指定接口:

 netstat  -I<IFace> 

wKioL1bw0jfDRGQTAAAVqkJpd5I840.png


   iproute家族:

     包括 ip 和 ss 两在命令;

     ip命令:

       功能:网络设备配置、IP地址管理、路由管理等

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

 OBJECT = { link | addr | route }

        注意:LBJECT可简写,各子命令也可简写;

     ip OBJECT:

        ip link: network device configuration 网络设备配置

        ip link <show|link> - display device attributes  显示设备属性

wKiom1bw-zOSIPgGAABb3tFM8Js491.png

        ip link help  - 显示简要使用帮助;

wKioL1bw-nvwcIhZAABQJKTTckY326.png

        ip link set  - change device attributes 修改设备属性         

          dev NAME (default):指明要管理的设备,dev关键字可省略;

          up和down:启用或禁用端口;

          multicast on或multicast off:启用或禁用多播功能;

          name NAME:重命名接口;需先down掉接口;

          mtu NUMBER:设置MTU的大小,默认为1500;

        例如:将eth1接口关闭

wKiom1bw-9uygoRgAAAxHCvLfiE748.png

     ip address  - protocol address management. IP地址管理      

       ip address <show|list> - look at protocol addresses

        ip addr list [IFACE]:显示接口的地址;

wKiom1bw_0HyvmBRAAA0bSTc4ng117.png

        ip address add  - add new protocol address

        ip addr add IFADDR dev  IFACE

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

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

        例如:给eth1接口添加地址192.168.100.10/24,并额外添加地址192.168.200.20/24

wKiom1bxArmRbXdbAAAyNk-pGh8603.png

        例如:再给eth1接口添加地址192.168.100.20/24,并额外添加地址10.0.10.10/8,name为eth:0

wKioL1bxBHGjGnNgAAA8470cr54477.png

        比较与上例显示的区别,并比较用ifconfig命令显示的不同处

wKioL1bxBOWxyq35AACmiyfmm6Q072.png

       ip address delete  - delete protocol address 删除IP地址

ip addr delete IFADDR dev IFACE 

        例如:将eth1接口192.168.200.20/24地址删除

wKioL1bxBcSCQlJlAAAwUFjtawU245.png

       ip address flush - flush protocol addresses 清空接口所有地地址

ip addr flush dev IFACE 

        例如:清空eth1接口所有IP地址

wKioL1bxBofhWaCpAAAddilcMys014.png

     ip route - routing table management 路由管理

       ip route <show|linst>  - list routes 显示路由信息

        ip roue show TYPE PRIFIX

wKioL1bxCYThEWSoAAAi7jNWznQ558.png

       ip route add - add new route 添加路由

       ip route change - change route 更改路由

       ip route replace - change or add new one 替换路由

        ip route add TYPE PREFIX(目标网络) via(下一跳)GW [dev IFACE] [src SOURCE_IP](源地址)

        例如:在eth1接口加条路由192.16.0.0/24指向10.0.0.1

wKioL1bxEuqifTMyAAA0TVR9qso482.png

        其它更改路由和替换路由跟添加一样,不再详述;       

       ip route get - get a single route 显示单条路由详细信息

        ip  route  get  TYPE PRIFIX

        例如:显示192.168.0.0/24路由信息

wKiom1bxFOvBouCSAAAQpkyV0Zw464.png

       ip route delete - delete route 删除

        ip  route  del  TYPE PRIFIX 

        例如:删除192.168.0.0/24路由

wKiom1bxFtHhxVQwAAAufZSR-4s803.png

       ip route flush - flush routing tables清除路由表

ip route flush TYPE PRIFIX

        例如:清除10/8路由

wKioL1bxGGHSuwAAAAAnomh6lmo606.png

    ss命令:

     功能:类似于netstat,但可可以显示比其它工具更为详细的TCP信息;

     格式:ss [options] [ FILTER ]

        常用选项:

-t:TCP协议的相关连接

-u:UDP相关的连接

-w:raw socket相关的连接

-l:监听状态的连接

-a:所有状态的连接

-n:数字格式

-p:相关的程序及其PID

-e:扩展格式信息

-m:内存用量

-o:计时器信息

       FILTER = [ state TCP-STATE ]  [ EXPRESSION ]

TCP的常见状态:

  TCP FSM:

LISTEN:监听

ESTABLISEHD:建立的连接

FIN_WAIT_1:

FIN_WAIT_2:

SYN_SENT:

SYN_RECV:

CLOSED:关闭

  EXPRESSION:

dport = 目标端口

sport = 源端口

        例如:查看22号端口tcp信息

wKioL1bxIRbAbe9YAAAbU3T1GnM067.png

   配置文件:

     以上两大家族修改的网络属性可立即生效,但是不可长久生效,重启网络服务后失效了。

   通过修改配置文件不能立即生效,但重启网络服务后可长久生效。

   网络属性的配置文件有两种: 

    (1)IP/NETMASK/GW/DNS等属性的配置文件路径:/etc/sysconfig/network-scripts/ifcfg-IFACE

      IFACE:接口名称;

    (2)路由的相关配置文件路径:/etc/sysconfig/networkj-scripts/route-IFACE

   修改配置文件中的参数有两种方法:

    (1)通过vim等文本编辑器直接修改;

    (2)使用专用命令进行修改:

       CentOS 6:system-config-network (setup)

       CentOS 7: nmtui

       输入这两种命令会进入类似BIOS的图形提示界面,可根据提示进行修改;

wKioL1bxOQ2ANpjyAAA1o4SDYEQ725.png

    /etc/sysconfig/network-scripts/ifcfg-IFACE 配置文件参数;  

       ifcfg-IFACE配置文件参数:

DEVICE:此配置文件对应的设备的名称;

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

UUID:此设备的惟一标识;

IPV6INIT:是否初始化IPv6;

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

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

DNS1:第一DNS服务器指向;

DNS2:备用DNS服务器指向;

DOMAIN:DNS搜索域;

IPADDR: IP地址;

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

GATEWAY:默认网关;

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

PEERDNS:如果BOOTPROTO的值为“dhcp”,表示是否允许dhcp server分配的dns服务器指向

              覆盖本地手动指定的DNS服务器指向;默认为允许;

HWADDR:设备的MAC地址;

NM_CONTROLLED:是否使用NetworkManager服务来控制接口;

    用到非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE    

      支持两种配置方式,但不可混用;

    (1) 每行一个路由条目:

  TARGET  via  GW

(2) 每三行一个路由条目:

  ADDRESS#=TARGET

  NETMASK#=MASK

  GATEWAY#=NEXTHOP

    配置文件修改后需要重启网络服务才可生效,重启网络服务方法:      

       CentOS 6:# service  network  restart

   CentOS 7:# systemctl  restart  network.service

    此处不再给大家做演示,大家可自行修改。

   网络属性配置的“三大家族”就总结到此,希望对初学者有所帮助,大学相互学习。