FetchLinux网络诊断实操指南
一、适用场景与工具定位
二、10分钟排障流程
三、FetchLinux场景的专项检查
四、常见症状与定位路径
| 症状 | 优先命令 | 关键检查点 | 常见修复 |
|---|---|---|---|
| 完全无法上网 | ping 8.8.8.8, ip addr, route -n | 网卡是否 up、是否有默认路由 | ip link set |
| 域名解析失败 | nslookup/dig |
/etc/resolv.conf 的 nameserver | 改为可用 DNS(如 223.5.5.5、8.8.8.8) |
| 能 ping 通但下载慢/失败 | curl -w, mtr |
路径抖动/丢包、远端限速 | 更换镜像源、错峰下载、联系上游 |
| 端口不通或服务未起 | ss -lntp, systemctl status fetchlinux | 监听地址/端口、服务状态 | 启动服务、放行端口、修正配置 |
| 偶发丢包/高时延 | mtr --report |
中间节点丢包、链路拥塞 | 更换运营商线路/出口、路径优化 |
| 防火墙阻断 | iptables -S, firewall-cmd --list-all | 策略是否拒绝 80/443/自定义端口 | 放行对应端口与来源网段 |
| 网卡链路不稳定 | ethtool |
Link detected、速率/双工 | 更换网线/光模块、固定速率双工 |
| 下载文件损坏 | sha256sum, curl -v | 传输中断、磁盘空间不足 | 重新下载、校验值比对、清理磁盘 |
五、一键诊断脚本模板
#!/usr/bin/env bash
set -e
echo "=== $(date) ==="
echo "[1] 接口与链路"
ip -4 -br addr
ethtool eth0 2>/dev/null | grep -i "Link detected"
echo "[2] 路由与默认网关"
ip route | grep default || echo "No default route"
echo "[3] 基础连通与DNS"
ping -c 4 8.8.8.8 && echo "Ping 8.8.8.8 OK" || echo "Ping 8.8.8.8 FAILED"
nslookup google.com || echo "DNS FAILED"
echo "[4] 路径质量"
mtr --report --report-cycles 10 8.8.8.8
echo "[5] FetchLinux 服务状态"
systemctl is-active --quiet fetchlinux && echo "fetchlinux active" || echo "fetchlinux inactive"
ss -lntp | grep -E '(:80|:443|:<YOUR_PORT>)' || echo "No target port listening"
echo "[6] 防火墙概览"
if command -v firewall-cmd &>/dev/null; then
firewall-cmd --list-all
else
iptables -S | head -20
fi
echo "[7] 最近内核/驱动日志"
dmesg | tail -50 | grep -i -E 'eth|link|net'
echo "[8] 镜像连通与性能(示例URL,请替换为你的镜像)"
MIRROR="https://mirrors.aliyun.com"
curl -w "\nDNS: %{time_namelookup} TCP: %{time_connect} TTFB: %{time_starttransfer} Total: %{time_total}\n" -o /dev/null -s "$MIRROR"