网络问题是嵌入式现场最常见的问题之一。设备能不能拿到 IP、能不能解析域名、能不能连上 MQTT、断网后能不能恢复,都会影响产品稳定性。
一、先看本机网络状态
常用命令:
1 | ip addr |
检查顺序:
- 网卡是否 up。
- 是否有 IP。
- 是否有默认路由。
- DNS 是否配置。
- 是否能 ping 网关。
- 是否能访问外网或 broker。
不要一上来就看应用日志。
二、静态 IP 和 DHCP
静态 IP 适合固定工业现场:
1 | ipaddr=192.168.1.100 |
DHCP 适合通用网络环境,但要处理获取失败和租约更新。
配置建议持久化到:
1 | /data/config/network.conf |
不要只改运行时命令,否则重启丢失。
三、连通性分层排查
按层检查:
1 | 链路层:网线、Wi-Fi、link up |
命令:
1 | ping 192.168.1.1 |
精简 rootfs 不一定有 nc,可以用 telnet 或应用内连接日志替代。
四、MQTT 排查
MQTT 连不上时看:
- broker 地址。
- 端口。
- client id。
- 用户名密码。
- TLS 证书。
- 系统时间。
- keepalive。
- topic 权限。
TLS 场景一定要检查时间:
1 | date |
系统时间错误会导致证书校验失败。
五、断网重连策略
设备服务要支持:
- 指数退避重连。
- 网络恢复后重新订阅 topic。
- QoS 策略。
- 离线状态缓存。
- 重复命令去重。
不要每秒疯狂重连 broker。现场网络抖动时,这会放大问题。
六、抓包
如果条件允许,使用:
1 | tcpdump -i eth0 -w mqtt.pcap |
再用 Wireshark 分析。抓包能直接看到 DNS、TCP 握手、TLS 握手和 MQTT 报文。
网络问题要尽量用事实定位,少靠猜。
- 本文链接: https://blog.hansong.icu/2026/06/26/Embedded_Linux_Series_12_Network_Practice/
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。