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地址并启用
[[email protected] ~]# ifconfig eth2 20.0.0.20/8 up
查看 eth2 修改后的ip的地址
[[email protected] ~]# ifconfig eth2
解析:其中inet addr显示为IP地址,而 Mask指定为子网掩码,HWaddr为网卡的MAC物理地址。
禁用eth2 设备
[[email protected] ~]# ifconfig eth2 down
给eth2添加别名设备地址
[[email protected] ~]# ifconfig eth2:1 172.0.0.10 netmask 255.255.0.0 up
同时查看eth2和eth2:1别名设备
[[email protected] ~]# echo -e "eth2\neth2:1" | xargs -I {} ifconfig {}
注意:刚才添加别名时最后设置为激活状态,但是ifconfig查看此设备并未激活,因为eth2本身是禁用状态,因此eth2启动,eth2:1才会起用并有效。
再次启用eth2
[[email protected] ~]# ifconfig eth2 up
解析:这里ifconfig再次查看就能同时显示eth2和eth2:1的ip信息了,但是如果此时禁用掉eth2:1别名设备,那么再次启动别名设备就不行了,因为数据在内存中,并未配置文件正宗保存永久数据。
#设置eth2:1别名设备的最大传输单元为900
[[email protected] ~]# ifconfig eth2:1 mtu 900
ip命令
查看所有网卡设备
[[email protected] ~]# ip link show
解析:这里显示所有网络设备,state为DOWN表示禁用,state为UP表示启用。
只显示启用状态的设备
[[email protected] ~]# ip link show up
只显示禁用状态设备,这里只有eth2为禁用
[[email protected] ~]# ip -o link show | grep --color ‘state[[:space:]]DOWN‘
启用eth2设备
[[email protected] ~]# ip link set up dev eth2
再次查看eth2设备状态,红色UP表示eth2已经启用
[[email protected] ~]# ip link show dev eth2 | grep --color -A 2 ‘state [^[:space:]]\+\>‘
给eth2添加额外ip地址
[[email protected] ~]# ip addr add 172.0.0.20/16 dev eth2
解析:这里现在eth2已经有3条IP 地址了。
给eth2添加别名设备
[[email protected] ~]# ip addr add 192.168.0.10/24 dev eth2 label eth2:1
删除指定条目地址
[[email protected] ~]# ip addr del 192.168.0.10/24 dev eth2
产看指定ip条目,只显示172开头的ip
[[email protected] ~]# ip addr show to 172/8 dev eth2
清除指定设备的指定ip
[[email protected] ~]# ip addr flush to 172/8 dev eth2
清除指定设备所有ip
[[email protected] ~]# ip addr flush dev eth2
route设置使用案例:
route 命令
查看路由表
[[email protected] ~]# route -n
给eth2添加默认路由,并设置网关地址
[[email protected] ~]# route add default gw 20.0.0.2 dev eth2
删除eth2默认路由
[[email protected] ~]# route del default dev eth2
添加指定主机并设置网关
[[email protected] ~]# route add -host 10.1.249.185 gw 10.1.250.111 dev eth1
添加指定网段并设置网关
[[email protected] ~]# route add -net 20.0.0.0/8 gw 10.1.0.1 dev eth1
删除指定主机路由
[[email protected] ~]# route del -host 10.1.249.185 dev eth1
删除指定网段路由
[[email protected] ~]# route del -net 169.254.0.0/16 dev eth1
ip命令
显示所有route表
[[email protected] ~]# 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网段路由指定网关
[[email protected] ~]# ip route add 192.168.0.0/24 via 20.0.0.20 dev eth2
修改eth2设备指定网段的网关地址
[[email protected] ~]# ip route change 192.168.0.0/24 via 20.0.0.10 dev eth2
删除指定条目路由
[[email protected] ~]# ip route del 20.0.0.0/8 dev eth2
清除所有设备10开头的ip网段路由
[[email protected] ~]# ip route flush to 20/8