iproute2 是现代 Linux 的统一入口
ip 命令把地址、接口、路由、邻居表与策略路由收在一个工具里,取代了 ifconfig、route、arp 这些分属不同软件包的老命令。它的输出结构清晰、支持的特性更全,是现代发行版的默认选择。排障时用 ip 能直接看到策略路由与多地址这类老工具完全看不到的信息,因此不建议再用 ifconfig 判断网络状态。
常用子命令
| 子命令 | 作用 | 示例 |
|---|---|---|
| ip addr | 地址管理 | ip addr add 10.0.0.5/24 dev eth0 |
| ip link | 接口状态与 MTU | ip link set eth0 up mtu 1400 |
| ip route | 路由表 | ip route add 10.1.0.0/16 via 10.0.0.1 |
| ip neigh | 邻居表,相当于 ARP 缓存 | ip neigh show |
| ip rule | 策略路由规则 | ip rule add from 10.0.0.5 table 100 |
| ip -s link | 接口收发与错误统计 | ip -s link show eth0 |
| ip -br 前缀 | 简洁单行视图 | ip -br addr 与 ip -br link |
常用组合
常用组合
ip -br addr # 简洁查看所有接口地址
ip -s link show eth0 # 看收发包量、错误与丢包计数
ip route get 1.1.1.1 # 查内核实际选用的路由与源地址
ip neigh show dev eth0 # 看邻居表,排查同网段不通很有用
ip link set eth0 mtu 9000 # 临时改 MTU:重启后丢失,需写入发行版网络配置
ip -4 route add 10.9.0.0/16 via 10.0.0.254 dev eth0 # 临时加路由,同样不持久ip -s link 输出读法
| 字段 | 含义 | 异常表现 |
|---|---|---|
| RX packets | 接收报文总数 | 与对端发送量对比可判断丢包发生在哪一侧 |
| RX errors 与 dropped | 接收错误与丢弃计数 | 持续增长说明链路或缓冲区有问题 |
| TX packets | 发送报文总数 | 结合重传情况判断链路质量 |
| TX errors 与 dropped | 发送错误与丢弃计数 | 常见于队列溢出或 MTU 不匹配 |
| collisions | 冲突计数 | 有线网络里出现大量冲突应检查双工与线缆 |
典型使用场景
- 临时切换接口地址与 MTU 做连通性验证,确认后再落到配置管理
- 排查同网段不通,先看邻居表里对端 MAC 是否正常解析
- 查看内核实际选用的路由与源地址,判断多网卡环境出口是否符合预期
- 核对接口错误与丢包计数,定位物理链路或缓冲区问题
- 配合策略路由实现多出口分流,比如按源地址选择出口
ip 命令的所有修改默认都是临时的,重启即失效。要长期生效必须写进发行版的网络配置(netplan、NetworkManager 或 ifcfg 文件),否则会出现「改完测试正常、重启后全部恢复」的假象。
避免用 ifconfig 排障:它看不到次要地址、策略路由与部分接口标志,输出还会把状态显示得与真实情况不一致,容易得出错误结论。