Linux之網絡管理(6)ip及路由相關命令
linux中提供了很多強大的網絡管理工具,而且每更新一些版本後都會有新功能、新工具的出現,對於ip和route設置最常用的,就是ifconfig、route等命令了。
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] #顯示指定網卡ethX的IP地址等信息
ip addr show to 2/8 #顯示子網位8爲ip爲2開頭的地址
設置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
解析:其中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
同時查看eth2和eth2:1別名設備
[root@mzf ~]# echo -e "eth2\neth2:1" | xargs -I {} ifconfig {}
注意:剛纔添加別名時最後設置爲激活狀態,但是ifconfig查看此設備並未激活,因爲eth2本身是禁用狀態,因此eth2啓動,eth2:1纔會起用並有效。
再次啓用eth2
[root@mzf ~]# ifconfig eth2 up
解析:這裏ifconfig再次查看就能同時顯示eth2和eth2:1的ip信息了,但是如果此時禁用掉eth2:1別名設備,那麼再次啓動別名設備就不行了,因爲數據在內存中,並未配置文件正宗保存永久數據。
#設置eth2:1別名設備的最大傳輸單元爲900
[root@mzf ~]# ifconfig eth2:1 mtu 900
ip命令
查看所有網卡設備
[root@mzf ~]# ip link show
解析:這裏顯示所有網絡設備,state爲DOWN表示禁用,state爲UP表示啓用。
只顯示啓用狀態的設備
[root@mzf ~]# ip link show up
只顯示禁用狀態設備,這裏只有eth2爲禁用
[root@mzf ~]# ip -o link show | grep --color 'state[[:space:]]DOWN'
[root@mzf ~]# ip link set up dev eth2
再次查看eth2設備狀態,紅色UP表示eth2已經啓用
[root@mzf ~]# ip link show dev eth2 | grep --color -A 2 'state [^[:space:]]\+\>'
給eth2添加額外ip地址
[root@mzf ~]# ip addr add 172.0.0.20/16 dev eth2
解析:這裏現在eth2已經有3條IP 地址了。
給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
route設置使用案例:
route 命令
查看路由表
[root@mzf ~]# route -n
給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