ip link 是什么
ip link 操作的是网络栈的第二层:查看链路状态、启停网卡、调整 MTU 与 MAC 地址。它属于 iproute2 套件,替代了旧的 ifconfig 与部分 ethtool 场景。加上统计选项后,它能一次性给出收发包与错误计数,是判断「物理层与驱动层有没有异常」最快的入口。
基本信息
| 用途 | 查看网卡状态、收发统计,启停接口,调整 MTU 与 MAC |
|---|---|
| 语法 | ip link show [接口];ip link set 接口 {up|down|mtu N|address MAC|name 新名|promisc on} |
| 统计选项 | ip -s link show 接口 看基础计数;再加一次 -s 可看到错误种类的细分 |
| 权限 | 查看普通用户即可,修改接口状态需要 root |
典型使用场景
- 链路自检:确认接口是否 UP、MTU 是否与设计一致、MAC 是否被改过
- 错误计数排查:errors 或 dropped 持续增长时判断是物理层、驱动还是队列问题
- 临时启用接口:新加的网卡或网桥成员还没拉起时手工启用
- MTU 调整验证:链路存在分片或隧道场景时临时调小 MTU 做验证
- 网卡改名:给可预测命名不理想的接口临时改为业务约定名称
查看与统计
查看与统计
ip link show # 所有接口的总览
ip link show eth0 # 单个接口详情
ip -s link show eth0 # 收发与错误计数
ip -s -s link show eth0 # 错误种类细分
ip -d link show eth0 | head -n 5 # 看驱动与链路层细节
cat /sys/class/net/eth0/operstate; cat /sys/class/net/eth0/mtu # 直接读内核属性修改接口属性
修改接口属性
ip link set eth1 up # 启用接口
ip link set eth1 down # 停用接口(远程操作会断链)
ip link set eth0 mtu 1400 # 临时调整 MTU
ip link set eth0 address 02:11:22:33:44:55
ip link set eth0 name lan0 # 接口必须先处于 down 状态
ip link set eth0 promisc on # 开启混杂模式(抓包或桥接场景)
ip -br link show # 简洁格式,适合脚本或巡检统计输出逐列读法
| 列 | 含义 | 怎么看 |
|---|---|---|
| RX bytes / packets | 接收字节与包数 | 与 TX 对照可发现单向异常 |
| RX errors | 接收错误 | 多与物理层、光模块、线缆相关 |
| RX dropped | 接收丢包 | 多为缓冲区不足或队列满,与硬件错误不同 |
| RX overrun | 溢出计数 | 表示驱动来不及取走数据 |
| RX mcast | 组播包计数 | 异常高时留意组播泛洪 |
| operstate / UP | 链路运行状态 | UP 表示已启用,LOWER_UP 表示物理链路已通 |
errors 与 dropped 是两类问题:前者偏向物理层与驱动,后者多与缓冲区、队列或抓包过滤器有关。偶发计数不必紧张,持续增长才需要处理,判断时结合运行时长一起看。
ip 命令改的是运行时状态,重启或网络服务重载后就还原。持久化配置按发行版选择对应方式(NetworkManager、systemd-networkd 或发行版的网络配置),不要靠 ip 命令长期维持。