Contents
  1. 1. IP地址相关操作
    1. 1.1. 显示IP
    2. 1.2. 增加或删除IP
  2. 2. 路由相关操作
    1. 2.1. 查看路由
    2. 2.2. 测试IP将匹配的路由项
    3. 2.3. 添加路由
  3. 3. 网络统计
    1. 3.1. 所有接口统计
    2. 3.2. 指定接口统计
  4. 4. ARP表
  5. 5. 监控网络连接
  6. 6. 激活与关闭网络接口
  7. 7. 帮助
  8. 8. 隧道

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内核模块.

Contents
  1. 1. IP地址相关操作
    1. 1.1. 显示IP
    2. 1.2. 增加或删除IP
  2. 2. 路由相关操作
    1. 2.1. 查看路由
    2. 2.2. 测试IP将匹配的路由项
    3. 2.3. 添加路由
  3. 3. 网络统计
    1. 3.1. 所有接口统计
    2. 3.2. 指定接口统计
  4. 4. ARP表
  5. 5. 监控网络连接
  6. 6. 激活与关闭网络接口
  7. 7. 帮助
  8. 8. 隧道