嵌入式开发少不了的网络故障排除

21ic电子网 2025-09-09 10:55

 

在嵌入式开发和物联网设备部署中,网络连接问题是最常见的技术挑战之一。无论是设备配网失败、通信中断,还是性能瓶颈,都需要系统性的网络故障排查能力。

网络排查核心工具

网络接口诊断

ip命令 - 现代网络配置的核心

# 查看网络接口状态
ip link show

# 查看IP地址配置
ip addr show

# 查看路由表
ip route show

# 启用/禁用网络接口
ip link set up/down eth0

# 配置IP地址
ip addr add 192.168.1.100/24 dev eth0

实际应用场景:在物联网设备部署中,经常需要动态配置网络接口。例如,当设备从WiFi切换到以太网时,需要重新配置网络参数。

ethtool - 物理层诊断利器

# 查看网卡驱动信息
ethtool -i eth0

# 查看网卡统计信息
ethtool -S eth0

# 查看网卡能力
ethtool eth0

# 设置网卡参数
ethtool -s eth0 speed 1000 duplex full autoneg off

故障排查案例

# 问题:网卡连接不稳定
ethtool eth0
# 输出显示:Link detected: no
# 解决方案:检查网线连接或交换机端口状态

连通性测试

ping - 基础连通性测试

# 基本ping测试
ping -c 4 8.8.8.8

# 指定源接口ping
ping -I eth0 192.168.1.1

# 设置TTL值
ping -t 64 8.8.8.8

# 连续ping监控
ping -i 1 192.168.1.1

实际应用:在设备配网过程中,ping命令用于验证网络配置是否正确。

traceroute/tracepath - 路径追踪

# 基本路径追踪
traceroute 8.8.8.8

# 指定源接口
traceroute -i eth0 8.8.8.8

# 使用UDP协议
traceroute -U 8.8.8.8

# 使用ICMP协议
traceroute -I 8.8.8.8

mtr - 实时路径监控

# 实时监控网络路径
mtr 8.8.8.8

# 生成报告
mtr --report 8.8.8.8

# 指定包数量
mtr -c 100 8.8.8.8

网络抓包与分析

tcpdump - 命令行抓包工具

# 抓取指定接口的包
tcpdump -i eth0

# 抓取指定主机的包
tcpdump host 192.168.1.100

# 抓取指定端口的包
tcpdump port 80

# 抓取HTTP包
tcpdump -i eth0 -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

# 保存抓包文件
tcpdump -i eth0 -w capture.pcap

实际应用场景:在MQTT通信故障排查中,使用tcpdump抓取1883端口的包,分析连接建立过程。

wireshark - 图形化抓包分析

# 启动wireshark
wireshark &

# 从命令行打开抓包文件
wireshark capture.pcap

网络扫描与发现

nmap - 网络扫描

# 扫描网段
nmap -sn 192.168.1.0/24

# 端口扫描
nmap -p 80,443,22 192.168.1.100

# 服务版本检测
nmap -sV 192.168.1.100

# 操作系统检测
nmap -O 192.168.1.100

netstat/ss - 连接状态查看

# 查看所有连接
netstat -tuln

# 查看监听端口
netstat -tuln | grep LISTEN

# 使用ss命令(更现代)
ss -tuln

# 查看进程连接
ss -tulnp

网络故障排查实际案例

物联网设备配网失败

问题描述:设备无法连接到WiFi网络,配网过程失败。

排查步骤

  1. 1. 检查网络接口状态
ip link show wlan0
# 输出:wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500
# 分析:接口已启用但无载波信号
  1. 2. 检查WiFi驱动状态
dmesg | grep wlan
# 查看驱动加载和错误信息
  1. 3. 检查WiFi配置
iwconfig wlan0
# 查看WiFi接口配置

iwlist wlan0 scan
# 扫描可用网络
  1. 4. 检查DHCP过程
tcpdump -i wlan0 -n port 67 or port 68
# 抓取DHCP包分析配网过程

解决方案

  • • 检查WiFi密码是否正确
  • • 确认路由器支持设备使用的WiFi协议
  • • 检查设备是否支持目标频段(2.4GHz/5GHz)

MQTT通信中断

问题描述:设备与云平台的MQTT连接频繁断开。

排查步骤

  1. 1. 检查网络连通性
ping -c 10 mqtt.example.com
# 测试到MQTT服务器的连通性
  1. 2. 检查MQTT端口连通性
telnet mqtt.example.com 1883
# 测试MQTT端口是否可达
  1. 3. 抓取MQTT通信包
tcpdump -i eth0 -A -s 0 'tcp port 1883'
# 分析MQTT通信过程
  1. 4. 检查防火墙规则
iptables -L -n
# 查看防火墙规则是否阻止MQTT通信

解决方案

  • • 配置防火墙允许1883端口
  • • 检查MQTT客户端的心跳配置
  • • 优化网络参数减少连接超时

网络性能瓶颈

问题描述:设备网络传输速度慢,延迟高。

排查步骤

  1. 1. 网络性能测试
# 测试带宽
iperf3 -c 192.168.1.100

# 测试延迟
ping -c 100 192.168.1.1 | grep "rtt"
  1. 2. 检查网络接口统计
ethtool -S eth0 | grep -E "(errors|dropped|collisions)"
# 查看网络错误统计
  1. 3. 检查系统负载
top
htop
# 查看CPU和内存使用情况
  1. 4. 网络队列分析
ss -i
# 查看TCP连接状态和参数

解决方案

  • • 优化TCP参数(窗口大小、拥塞控制算法)
  • • 检查网卡驱动和固件版本
  • • 调整系统网络缓冲区大小

网络监控与日志分析

系统日志分析

# 查看网络相关日志
journalctl -u NetworkManager

# 查看内核网络日志
dmesg | grep -i network

# 查看系统日志中的网络错误
grep -i "network\|ethernet\|wifi" /var/log/syslog

网络性能监控

# 实时网络监控
iftop -i eth0

# 网络接口统计
cat /proc/net/dev

# 网络连接统计
cat /proc/net/snmp

自定义网络监控脚本

#!/bin/bash
# 网络监控脚本

monitor_network() {
    whiletruedo
        # 检查网络接口状态
        for interface in eth0 wlan0; do
            if ip link show $interface | grep -q "UP"then
                echo"$(date)$interface 接口正常"
            else
                echo"$(date)$interface 接口异常"
            fi
        done
        
        # 检查网络连通性
        if ping -c 1 8.8.8.8 > /dev/null 2>&1; then
            echo"$(date): 外网连通性正常"
        else
            echo"$(date): 外网连通性异常"
        fi
        
        sleep 60
    done
}

 

END


资讯配图


最后提一句,21ic论坛(bbs.21ic.com)正在招募原创作者,单篇文章奖励最高500元,欢迎广大网友踊跃投稿!资讯配图 点击了解活动详情

往期精选:


资讯配图
扫描二维码,关注视频号

请点下【♡】给小编加鸡腿



资讯配图

声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
嵌入式
more
分享几个嵌入式软件日志技巧!
「嵌入式AI硬件开源运营平台」通过工信部工业文化发展中心“AI产业创新场景应用案例”评估
告别NOR+EEPROM?RRAM正在重塑嵌入式外存格局
90个嵌入式工程师需要掌握的基本概念
边缘AI技术正在嵌入式领域逐渐壮大!
嵌入式项目,你用现成软硬件模块,还是从0造轮子?
从云端到终端,AI正加速“落地”!AI盛会揭秘嵌入式智能落地新范式
STM32嵌入式开发项目实战|RTOS+MQTT+阿里云平台全流程教学+1V1辅导
当单片机遇见Zephyr,打通嵌入式开发任督二脉!
Qt Group :严格的架构设计是嵌入式设备安全运行的核心前提
Copyright © 2025 成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号