📡 Linux ip 命令完整使用手册
📝 快速参考表
ip link # 网卡
ip addr # IP
ip route # 路由
ip neigh # ARP
ip rule # 策略
ip maddr # 多播
ip tunnel # 隧道
ip -s link # 统计
📋 目录
目录
1. 命令基础
基本语法
ip [OPTIONS] OBJECT { COMMAND | help }
常用选项
| 选项 | 说明 | 示例 |
|---|---|---|
-4 |
仅显示 IPv4 | ip -4 addr |
-6 |
仅显示 IPv6 | ip -6 addr |
-s |
显示统计信息 | ip -s link |
-d |
详细输出 | ip -d link |
-h |
人类可读格式 | ip -h link |
monitor |
实时监控 | ip monitor link |
2. 网卡管理
2.1 查看所有网卡
ip link show # 基础信息
ip -d link show # 详细
ip -h link show # 人类可读
输出解析:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
| 字段 | 含义 |
|---|---|
lo |
网卡名称 |
LOOPBACK |
回环接口 |
UP |
逻辑启用 |
LOWER_UP |
物理连接正常 |
mtu 65536 |
最大传输单元 |
qdisc noqueue |
队列策略 |
state UP |
状态:UP/DOWN |
link/loopback |
接口类型 |
00:00:00:00:00:00 |
MAC 地址 |
2.2 查看指定网卡
ip link show eth0
ip addr show dev eth0 # 含 IP 信息
2.3 网卡统计信息
ip -s link show eth0 # 收发统计
RX(接收)/TX(发送)统计:
| 字段 | 含义 |
|---|---|
bytes |
总字节数 |
packets |
数据包数 |
errors |
错误包 |
dropped |
丢包数 |
mcast |
多播包 |
2.4 网卡控制
ip link set eth0 up # 启用
ip link set eth0 down # 禁用
ip link set eth0 mtu 9000 # 设置 MTU
ip link set eth0 name enp0s3 # 重命名
3. IP 地址管理
3.1 查看 IP
ip addr show # 所有接口
ip addr show eth0 # 指定接口
ip -4 addr show eth0 # 仅 IPv4
输出示例:
inet 172.23.37.146/20 brd 172.23.47.255 scope global eth0
3.2 添加/删除 IP
# 添加 IPv4
sudo ip addr add 192.168.1.100/24 dev eth0
# 添加 IPv6
sudo ip addr add 2001:db8::1/64 dev eth0
# 删除 IP
sudo ip addr del 192.168.1.100/24 dev eth0
3.3 IP 别名
# 添加别名(临时)
sudo ip addr add 192.168.1.101/24 dev eth0 label eth0:1
4. 路由管理
4.1 查看路由表
ip route show # 所有
ip -4 route show # IPv4
ip -6 route show # IPv6
输出示例:
default via 172.23.32.1 dev eth0
172.23.32.0/20 dev eth0 proto kernel scope link src 172.23.37.146
4.2 添加/删除路由
# 添加默认路由
sudo ip route add default via 192.168.1.1
# 添加网段路由
sudo ip route add 10.0.0.0/8 via 192.168.1.254
# 删除路由
sudo ip route del default via 192.168.1.1
4.3 路由查询
ip route get 8.8.8.8 # 到 8.8.8.8 的路径
5. ARP/邻居缓存
5.1 查看 ARP 表
ip neigh show # IPv4/IPv6
ip -4 neigh show # 仅 IPv4
ip -6 neigh show # 仅 IPv6
状态说明:
REACHABLE:可达STALE:过期FAILED:失败
5.2 手动添加 ARP
sudo ip neigh add 192.168.1.1 lladdr aa:bb:cc:dd:ee:ff dev eth0
6. 网络命名空间
6.1 创建/删除命名空间
# 创建
sudo ip netns add ns1
# 删除
sudo ip netns del ns1
# 列出
ip netns list
6.2 在命名空间中操作
# 进入命名空间
sudo ip netns exec ns1 ip addr
# 在命名空间中创建接口
sudo ip netns exec ns1 ip link set lo up
6.3 veth 虚拟对
# 创建 veth 对
sudo ip link add veth0 type veth peer name veth1
# 移动到命名空间
sudo ip link set veth1 netns ns1
7. 策略路由
7.1 查看策略规则
ip rule show
输出示例:
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
7.2 添加策略路由
# 基于源 IP 的路由表
sudo ip rule add from 192.168.1.100 table 100
sudo ip route add default via 192.168.2.1 table 100
8. 多播管理
8.1 查看多播组
ip maddr show # 所有接口
ip maddr show dev eth0 # 指定接口
9. 隧道配置
9.1 什么是隧道?
隧道(Tunnel)是将一种协议封装在另一种协议中传输的技术,用于:
- 跨公网传输私有网络流量
- IPv6 over IPv4
- 站点间 VPN
常见类型:
- GRE:通用路由封装
- IPIP:IP in IP
- VXLAN:虚拟扩展 LAN
9.2 查看隧道
ip tunnel show
9.3 创建 GRE 隧道
sudo ip tunnel add gre1 mode gre remote 192.168.2.1 local 192.168.1.1 ttl 255
sudo ip link set gre1 up
sudo ip addr add 10.0.0.1/30 dev gre1
10. 流量统计与监控
10.1 实时监控
ip -s -h link monitor eth0 # 监控 eth0
ip monitor # 监控所有
10.2 累计统计
ip -s link show eth0
watch -n 1 "ip -s -h link show eth0" # 每秒刷新
11. 网桥管理
11.1 查看网桥
ip link show type bridge
bridge link show
11.2 创建网桥
# 创建桥接
sudo ip link add name br0 type bridge
sudo ip link set eth0 master br0
sudo ip link set br0 up
12. 实用脚本示例
12.1 一键网络诊断
#!/bin/bash
echo "🔍 网络诊断报告"
echo "=================="
echo "1. 网卡状态:"
ip -h link show
echo -e "\n2. IP 地址:"
ip addr show
echo -e "\n3. 路由表:"
ip route show
echo -e "\n4. 网卡统计:"
ip -s -h link
12.2 网卡流量监控
#!/bin/bash
INTERFACE=${1:-eth0}
watch -n 1 "ip -s -h link show $INTERFACE | grep -E 'RX|TX'"
13. 故障排除
常见问题
| 问题 | 命令诊断 | 解决方法 |
|---|---|---|
| 网卡 DOWN | ip link show |
ip link set eth0 up |
| 无 IP 地址 | ip addr |
dhclient eth0 |
| 路由丢失 | ip route |
ip route add default via GW |
| 高丢包率 | ip -s link |
检查 MTU/队列长度 |
| ARP 解析失败 | ip neigh |
ip neigh flush all |
浙公网安备 33010602011771号