Linux之网络管理(6)ip及路由相关命令

linux中提供了很多强大的网络管理工具,而且每更新一些版本后都会有新功能、新工具的出现,对于iproute设置最常用的,就是ifconfigroute等命令了。

 

IP及设备相关的命令使用:

ifconfig 命令

查看接口设备信息

ifconfig                 #查看所有启用(up状态)的接口信息

ifconfig  ifcfg-x        #查看指定的网络接口信息

ifconfig  -a             #查看所有网卡接口设备信息

ifconfig  -s             #显示设备列表中数据传输状态信息

启用或禁用网卡接口设备

ifconfig  ifcfg-ethX  {up|down}               #up为启用,down为禁用

设置接口设备基本信息

ifconfig  ifcfg-ethX  ipaddr/prefixlen             #设置网卡IP及子网掩码:格式一

ifconfig  ifcfg-ethX  ipaddr  netmask  maskaddr    #设置网卡IP及子网掩码:格式二

ifconfig  ifcfg-ethX  IP/MASK  up   #设置网卡IP及子网掩码并激活此设备

ifconfig  ifcfg-ethX  mtu  N        #设置指定设备的最大传输单元,默认为1500

给指定网卡添加别名及IP

ifconfig  ifcfg-ethX:X  ipaddr/prefixlen  up

 

  

ip命令

查看接口设备

ip  link  show      #显示所有接口设备

ip  link  show  up  #只查看查看激活的设备

ip  -o  link  show  up     #每个启用的设备列表信息显示在一行

启用或禁用接口设备

ip  link  set  {up|down}  dev  ethX         

ip  link  set  up  dev  eth1             #启用指定设备 eth1

ip  link  set  down  dev  eth1            #禁用指定设备eth1

查看ip

ip  addr  show            #显示所有网卡设备IP地址等信息

ip  addr  show  up        #只显示启用状态网卡设备IP地址等信息

ip  addr  show  [ethX]    #显示指定网卡ethXIP地址等信息

ip  addr  show  to  2/8   #显示子网位8ip2开头的地址

设置ip

ip  addr  add  addr/prefixlen  dev  ethX        #给指定设备添加IP地址

ip  addr  del   addr/prefixlen  dev  ethX        #删除指定设备的指定IP地址

ip  add   add  addr/prefixlen  dev  ethX  label  ethX:X  #对指定网卡添加别名设备

清除 ip

ip  addr  flush  dev  ethX                  #清除指定网卡ethX的所有地址

ip  addr  flush  to  8  ethX                #清除ethX子网掩码为8位的所有IP

ip  addr  flush  to  1/8  ethX              #清除ethX IP开头为1子网位数8为的IP

 

 

网关路由Route的相关命令使用:

route 命令

查看路由

route                         #查看所有路由表

route  -n                     #查看所有路由表,并以数字方式显示

添加路由

route  add  defualt   dev  eth0     #eth0添加默认路由

route  add  0.0.0.0   dev  eth0   

添加指定地址路由:

#给指定设备设置通往指定IP主机的网关

route  add  -host  ipaddr   dev  ethX    

#给指定设备设置主机并指定路由

route  add  -host  ipaddr/prefixlen   dev  ethX    

route  add  -host  ipaddr  netmask  maskaddr   dev  ethX

#指定网段路由

route  add  -net   10.0.0.0/8    dev  eth0

route  add  -net   172.0.0.0  netmask  255.255.0.0   dev  eth0

#指定网关的路由

route  add  -net   10.0.0.0/8   gw   10.0.0.2   dev  eth0

删除路由

route  del   defualt                       #删除默认路由

route  del   0.0.0.0   dev  eth0    

route  del   -host   10.0.0.1/8            #删除指定主机路由

route  del   -host   10.0.0.1/8  dev  eth1   

route  del   -net    10.0.0.0/8  gw  10.0.0.2     #删除指定网关的路由

 

 

ip  命令

查看路由

ip  route              #查看所有路由

设置路由

ip  route  add   default   [ via   ipaddr  dev  ethX ]    #添加默认路由

ip  route  add   0.0.0.0                                  #添加默认路由

ip  route  del   default                                  #删除默认路由

ip  route  add  10.0.0.10   via  10.0.0.20  dev  eth0     #添加指定主机路由

ip  route  add  10.0.0.0/8  via  10.0.0.2   dev  eth0     #添加指定网段路由并指定网关

ip  route  del   10.0.0.0/8dev   eth0                     #删除指定网段路由

ip  route  del   10.0.0.10     dev   eth0                 #删除指定主机路由

ip  route  change  10.0.0.0/8   via   20.0.0.10  dev  eth0    #修改指定路由网关

 

IP设置使用案例:

ifconfig  命令

设置eth2设备的ip地址并启用

[root@mzf ~]# ifconfig eth2 20.0.0.20/8  up

查看 eth2 修改后的ip的地址

[root@mzf ~]# ifconfig eth2

wKiom1fVB8PDMOWsAAAf3I4SjIQ883.png 

解析:其中inet addr显示为IP地址,而 Mask指定为子网掩码,HWaddr为网卡的MAC物理地址。

禁用eth2 设备

[root@mzf ~]# ifconfig eth2 down

eth2添加别名设备地址

[root@mzf ~]# ifconfig eth2:1  172.0.0.10 netmask 255.255.0.0 up

同时查看eth2eth2:1别名设备

[root@mzf ~]# echo -e "eth2\neth2:1" | xargs -I {}  ifconfig {}

wKiom1fVB_HyWHDaAAAotahiH64204.png 

注意:刚才添加别名时最后设置为激活状态,但是ifconfig查看此设备并未激活,因为eth2本身是禁用状态,因此eth2启动,eth2:1才会起用并有效。

再次启用eth2

[root@mzf ~]# ifconfig eth2 up

解析:这里ifconfig再次查看就能同时显示eth2eth2:1ip信息了,但是如果此时禁用掉eth2:1别名设备,那么再次启动别名设备就不行了,因为数据在内存中,并未配置文件正宗保存永久数据。

#设置eth2:1别名设备的最大传输单元为900

[root@mzf ~]# ifconfig eth2:1 mtu 900

wKioL1fVCBLBu0xTAAAS5wvvGCw688.png 

 

ip命令

查看所有网卡设备

[root@mzf ~]# ip link show

 wKiom1fVCDvj1Ho6AAAiaOwBfJY682.png

解析:这里显示所有网络设备,stateDOWN表示禁用,stateUP表示启用。

只显示启用状态的设备

[root@mzf ~]# ip link show up

wKiom1fVCFmihwXnAAAYTPp8oBo125.png

只显示禁用状态设备,这里只有eth2为禁用

[root@mzf ~]# ip -o link show | grep --color 'state[[:space:]]DOWN'

wKioL1fVCGODuh1oAAASzb5szlU634.png启用eth2设备

[root@mzf ~]# ip link set up dev eth2

再次查看eth2设备状态,红色UP表示eth2已经启用

[root@mzf ~]# ip link show dev eth2 | grep --color -A 2 'state [^[:space:]]\+\>'

wKioL1fVCJGCYCEQAAASnOjUTtw480.png 

eth2添加额外ip地址

[root@mzf ~]# ip addr add 172.0.0.20/16 dev eth2

 wKioL1fVCKuChZERAAAZjxQq-eI650.png

解析:这里现在eth2已经有3IP 地址了。

eth2添加别名设备

[root@mzf ~]# ip addr add 192.168.0.10/24 dev eth2 label eth2:1

删除指定条目地址

[root@mzf ~]# ip addr del 192.168.0.10/24 dev eth2

产看指定ip条目,只显示172开头的ip

[root@mzf ~]# ip addr show to 172/8 dev eth2

清除指定设备的指定ip

[root@mzf ~]# ip addr flush to 172/8 dev eth2

清除指定设备所有ip

[root@mzf ~]# ip addr flush dev eth2

wKioL1fVCPXyBN8zAAARhrF7vZk875.png 

 

route设置使用案例:

route 命令

查看路由表

[root@mzf ~]# route -n

wKiom1fVCSuwn03uAAARCSccWK8205.png 

eth2添加默认路由,并设置网关地址

[root@mzf ~]# route add default gw 20.0.0.2 dev eth2

删除eth2默认路由

[root@mzf ~]# route del default dev eth2

添加指定主机并设置网关

[root@mzf ~]# route add -host 10.1.249.185 gw 10.1.250.111  dev eth1

添加指定网段并设置网关

[root@mzf ~]# route add -net 20.0.0.0/8 gw 10.1.0.1  dev eth1

删除指定主机路由

[root@mzf ~]# route del -host 10.1.249.185 dev eth1

删除指定网段路由

[root@mzf ~]# route del -net 169.254.0.0/16 dev eth1


ip命令

显示所有route

[root@mzf ~]# ip route show
10.1.0.0/16 dev eth1  proto kernel  scope link  src 10.1.249.145 
20.0.0.0/8 via 10.1.0.1 dev eth1 
20.0.0.0/8 dev eth2  proto kernel  scope link  src 20.0.0.20 
default via 10.1.0.1 dev eth1

添加192.168网段路由指定网关

[root@mzf ~]# ip route add 192.168.0.0/24 via 20.0.0.20 dev eth2

修改eth2设备指定网段的网关地址

[root@mzf ~]# ip route change 192.168.0.0/24 via 20.0.0.10 dev eth2

删除指定条目路由

[root@mzf ~]# ip route del 20.0.0.0/8  dev eth2

清除所有设备10开头的ip网段路由

[root@mzf ~]# ip route flush to 20/8