linux下的ip
命令有点类似ifconfig
命令,但是更强大,且有意取代它。使用ip命令可以完成多项网络管理操作,ifconfig是net-tools工具下的一个命令,而这个工具已经多年没有维护,已不建议使用的,而iproute2保留并增强了它的许多功能。
许多的Linux发行版都已经内置了iproute2工具集。
IP地址相关操作
ip命令使用CIDR格式来表示MASK,更直观也更方便输入,不用输入长串的255了。
显示IP
1 2 3 4 5 6 7 8 9 10 11
| chen@vaio:~$ ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 30:f9:ed:fe:66:4d brd ff:ff:ff:ff:ff:ff inet 10.210.106.20/27 brd 10.210.106.31 scope global eth0 valid_lft forever preferred_lft forever inet6 2001:da8:215:fa50:a55d:8c14:6748:xxxx/64 scope global temporary dynamic valid_lft 569852sec preferred_lft 50852sec inet6 2001:da8:215:fa50:32f9:edff:fefe:xxxx/64 scope global mngtmpaddr noprefixroute dynamic valid_lft 2591880sec preferred_lft 604680sec inet6 fe80::32f9:edff:fefe:664d/64 scope link valid_lft forever preferred_lft forever
|
增加或删除IP
1 2 3
| ip addr add 192.168.0.193/24 dev wlan0 ip addr del 192.168.0.193/24 dev wlan0
|
路由相关操作
使用ip route [show]可以查看和设置数据包的路由规则。
查看路由
第一项为系统的default route,是我的VPN端口:
1 2 3 4 5 6 7 8 9 10 11
| chen@vaio:~$ ip route 0.0.0.0/1 via 10.8.0.5 dev tun0 proto static metric 950 default via 10.210.106.1 dev eth0 10.0.0.0/8 via 10.210.106.1 dev eth0 10.8.0.1 via 10.8.0.5 dev tun0 proto static metric 950 10.8.0.5 dev tun0 proto kernel scope link src 10.8.0.6 10.210.106.0/27 dev eth0 proto kernel scope link src 10.210.106.20 128.0.0.0/1 via 10.8.0.5 dev tun0 proto static metric 950 169.254.0.0/16 dev vmnet1 scope link metric 1000 172.16.65.0/24 dev vmnet1 proto kernel scope link src 172.16.65.1 192.168.98.0/24 dev vmnet8 proto kernel scope link src 192.168.98.1
|
测试IP将匹配的路由项
当你怀疑你的路由设置出现问题时,可以用这个命令进行验证和排查。
1 2 3
| chen@vaio:/data/blogeditor$ ip route get 8.8.8.8 8.8.8.8 via 10.8.0.5 dev tun0 src 10.8.0.6 cache
|
添加路由
添加默认路由
1
| ip route add default via 192.168.155.1
|
添加静态路由
1
| ip route add 10.0.0.0/8 via 10.210.106.1
|
以上命令可以确保在使用了VPN的情况下,校园网依然走本地接口
网络统计
ip -s link
可以用来显示相关的网络统计数字
所有接口统计
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| chen@vaio:/data/blogeditor$ ip -s link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 RX: bytes packets errors dropped overrun mcast 3397099573 2787056 0 0 0 0 TX: bytes packets errors dropped carrier collsns 3397099573 2787056 0 0 0 0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 30:f9:ed:fe:66:4d brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 6752615606 4912166 0 0 0 0 TX: bytes packets errors dropped carrier collsns 408634823 2919179 0 0 0 0 6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100 link/none RX: bytes packets errors dropped overrun mcast 50024014 102216 0 0 0 0 TX: bytes packets errors dropped carrier collsns 123137376 126954 0 8 0 0
|
指定接口统计
使用ls参数可以指定要统计的接口,使用额外的-s参数会打印更详细的统计数据,这个命令也可以用于网络诊断。
1 2 3 4 5 6 7 8 9 10 11
| chen@vaio:/data/blogeditor$ ip -s -s link ls tun0 6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100 link/none RX: bytes packets errors dropped overrun mcast 50044817 102270 0 0 0 0 RX errors: length crc frame fifo missed 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 123190189 127059 0 8 0 0 TX errors: aborted fifo window heartbeat transns 0 0 0 0 0
|
ARP表
ip neigh
可用来查看arp表项
1 2 3 4
| chen@vaio:/data/blogeditor$ ip neigh 10.210.106.11 dev eth0 lladdr 00:90:f5:eb:0b:da STALE 10.210.106.6 dev eth0 lladdr 00:90:f5:eb:0b:da STALE 10.210.106.1 dev eth0 lladdr 3c:e5:a6:d2:37:cd REACHABLE
|
当然也可以使用add / del 来增加或者删除表项
1
| ip neigh add 10.210.106.30 dev eth0 lladdr aa:bb:cc:dd:ee:ff:00
|
监控网络连接
ip monitor
命令将会持续监控连接状态
1 2 3 4 5
| chen@vaio:/data/blogeditor$ ip monitor all [NEIGH]10.210.106.1 dev eth0 lladdr 3c:e5:a6:d2:37:cd STALE [NEIGH]10.210.106.1 dev eth0 lladdr 3c:e5:a6:d2:37:cd REACHABLE [NEIGH]10.210.106.1 dev eth0 lladdr 3c:e5:a6:d2:37:cd STALE [NEIGH]10.210.106.1 dev eth0 lladdr 3c:e5:a6:d2:37:cd REACHABLE
|
激活与关闭网络接口
1
| ip set link wlan0 up/down
|
帮助
ip的每个子命令都可以使用help,如ip route help
隧道
最后来介绍一下ip tunnel
命令,上一节创建IPv6隧道时使用好如下命令:
1
| ip tunnel add he-ipv6 mode sit remote 66.220.18.42 local 104.194.xx.xx ttl 255
|
sit模式意为Simple Internet Transition,主要用于连接孤立的IPv6网络,它需要使用ipv6内核模块.