银河麒麟系统网络故障需分层排查:一用ping查整体丢包率;二用mtr定位逐跳丢包节点;三用nc验证TCP端口可达性;四用ethtool检查网卡物理状态与驱动;五用dmesg追溯网卡初始化错误日志。

在银河麒麟操作系统中排查网络不通、延迟高或连接中断等问题,需组合使用多种原生诊断工具定位故障层级——从物理链路、网卡驱动、IP连通性到应用端口可达性,不能只依赖单一命令。
用ping确认基础连通性与丢包率
打开终端,执行:ping -c 5 www.baidu.com。
观察末尾统计行中的packet loss数值:若显示0% packet loss但个别time=为timeout,说明存在间歇性丢包;若大于0%,则路径中已有设备开始丢弃ICMP包。
【必须确保DNS正常,否则会显示“Name or service not known”而非丢包】。可改用IP测试绕过DNS:如ping -c 5 114.114.114.114。
用mtr精准定位逐跳丢包节点
第一步:安装工具(如未预装)→sudo apt-get install mtr-tiny。
第二步:运行探测→sudo mtr -n -r -c 10 223.5.5.5,其中-n禁用DNS解析,-r生成单次报告,-c 10发送10个包。
第三步:查看输出表格中Loss%列,找到首个非零值所在跳数的IP地址——该节点即为丢包发生位置。
注意:若第1跳(本地网关)就出现丢包,问题大概率出在本机网卡、驱动或物理线路;若丢包出现在中间某跳且后续跳数恢复,则是该路由器或防火墙策略限制所致。
用nc验证TCP端口是否可达
方法一(单次检测):执行nc -zv www.baidu.com 80 2>&1 | grep succeeded,返回“succeeded”表示80端口TCP三次握手成功。
方法二(批量统计失败次数):运行for i in {1..10}; do nc -z www.baidu.com 443 &>/dev/null && echo "OK" || echo "FAIL"; done | grep -c "FAIL",输出数字即为10次连接中失败的次数。
【若ping通但nc失败,说明防火墙或目标服务已屏蔽ICMP但放行TCP,或目标端口未监听】。
用ethtool检查网卡物理状态与驱动异常
先确认网卡名:执行ip -br a | awk '$2 ~ /UP/ {print $1}',获取活跃接口名(如enp0s3)。
再运行sudo ethtool enp0s3(将enp0s3替换为实际接口名),重点查看三处:
– Link detected: 显示yes才表示物理链路接通;
– Speed: 应为1000Mb/s或10000Mb/s,若为Unknown!或10Mb/s,说明协商异常;
– driver: 字段必须有值(如r8169、iwlwifi),若为空或显示unset,驱动未加载或绑定失败。
用dmesg追溯网卡初始化失败日志
执行dmesg | grep -i "eth\|wlan\|firmware\|error"。
重点关注含firmware request failed、no link、reset failed、probe failed的行。
例如输出iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-ty-a0-gf-a0-77.ucode failed with error -2,说明缺少对应固件文件,需手动下载并放入/lib/firmware目录后重启。

















