ip link show 是查看网络接口状态的最基础命令。当蜂窝模组拨号成功后,应该看到特定的输出。
正常情况下的输出示例
蜂窝模组拨号成功后,执行 ip link show
$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 11:22:33:44:55:66 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
4: wwan0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
link/ppp
关键点:看到UP和LOWER_UP状态
关键字段解析
参考上述打印, ip link show后返回的内容解析如下所示:
接口名:<状态标志位> MTU值最大传输单元 队列规则qdisc类型 状态state值 模式mode类型 链路类型link/类型
|-----------|------------------|----------------------|----------------------|
| | 字段 | 值 | 说明 |
| 接口名 || wwan0、eth0、usb0等 | 接口名称和分隔符 |
| 状态标志位 | 正常工作时必须看到的标志 | UP | 软件层面,接口已启用 |
| 状态标志位 | 正常工作时必须看到的标志 | LOWER_UP | 硬件层面,物理链路已连接 |
| 状态标志位 | 蜂窝接口特有的标志 | POINTOPOINT | 点对点连接 |
| 状态标志位 | 蜂窝接口特有的标志 | NOARP | 不使用ARP协议 |
| 状态标志位 | 常见但非必须的标志 | MULTICAST | 支持多播 |
| 状态标志位 | 常见但非必须的标志 | BROADCAST | 支持广播(以太网有,蜂窝通常无) |
| 状态标志位 | 常见但非必须的标志 | RUNNING | 接口正在运行 |
| 状态标志位 | 常见但非必须的标志 | PROMISC | 混杂模式 |
| 状态标志位 | 常见但非必须的标志 | ALLMULTI | 接收所有多播包 |
| 状态标志位 | 常见但非必须的标志 | DYNAMIC | 接口可动态创建/删除 |
| 状态标志位 | 问题标志 | DORMANT | 接口休眠中 |
| 状态标志位 | 问题标志 | DEBUG | 调试模式 |
| 状态标志位 | 问题标志 | LOOPBACK | 回环接口 |
| 状态标志位 | 问题标志 | NO_CARRIER | 无载波信号 |
| MTU值最大传输单元 || mtu 1500 | 最大传输单元 |
| 队列规则qdisc类型 || qdisc pfifo_fast | 流量队列算法 |
| 状态 || state UNKNOWN | 未知状态(蜂窝接口正常状态) |
| 状态 || state UP | 接口已启用(以太网正常状态) |
| 状态 || state DOWN | 接口已禁用 |
| 状态 || state DORMANT | 接口休眠 |
| 状态 || state TESTING | 测试模式 |
| 状态 || state NOTPRESENT | 接口不存在 |
| 模式 || mode DEFAULT | 默认模式(最常见) |
| 组 || group default | 接口组 |
| 队列长度 || qlen 1000 | 发送队列长度 |
| 链路类型link/类型 || link/ether | 以太网接口(有MAC地址) |
| 链路类型link/类型 || link/ppp | ppp点对点连接(蜂窝接口) |
| 链路类型link/类型 || link/loopback | 回环接口 |
| 链路类型link/类型 || link/infiniband | InfiniBand接口 |
| 链路类型link/类型 || link/can | CAN总线接口 |
| 链路类型link/类型 || link/ipip | IP隧道 |
问题1:接口没有UP标志
现象
wwan0: <POINTOPOINT,MULTICAST,NOARP> mtu 1500 state DOWN ...
解决
sudo ip link set wwan0 up
然后重新检查
ip link show wwan0
问题2:有UP但没有LOWER_UP
现象
wwan0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu 1500 state DOWN ...
解决 - 这不是ip命令能解决的,需要:
1. 检查蜂窝连接
qmicli -d /dev/cdc-wdm0 --wds-get-packet-service-status
2. 如果未连接,重新拨号
qmicli -d /dev/cdc-wdm0 --wds-start-network="apn=your.apn"
问题3:接口不存在
现象
Device "wwan0" does not exist.
解决步骤
1. 检查USB设备
lsusb
2. 检查驱动
lsmod | grep -E "qmi|cdc|usbnet"
3. 检查设备节点
ls /dev/cdc-wdm* /dev/ttyUSB*
4. 重新加载驱动
sudo rmmod qmi_wwan
sudo modprobe qmi_wwan
问题4:MTU值异常
现象
wwan0: ... mtu 576 ...
解决 - 蜂窝网络通常需要较小MTU
sudo ip link set wwan0 mtu 1420
或者
sudo ip link set wwan0 mtu 1400
=== 蜂窝接口状态诊断: wwan0 ===
- 检查接口是否存在...
✓ 接口 wwan0 存在
- 接口详细信息:
4: wwan0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
link/ppp
- 标志位分析:
标志: POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP
✓ UP: 接口已启用
✓ LOWER_UP: 物理链路已连接
✓ POINTOPOINT: 点对点连接(蜂窝接口特征)
- 状态检查:
状态: UNKNOWN
✓ UNKNOWN: 蜂窝接口正常状态
- MTU检查:
MTU: 1500
✓ MTU在合理范围 (1400-1500)
- 诊断总结:
✅ 接口状态正常,可以进行下一步配置
下一步: 检查IP地址 (ip addr show wwan0)
下一步: 检查路由 (ip route show)