网络诊疗:ping/telnet/traceroute 快速诊断回国线路质量
VPS 连不上、网站打开慢、SSH 卡顿,十有八九是回国线路出了问题。别急着找机房,先拿 ping、telnet、traceroute 这三个命令自己查一遍,十分钟就能定位问题。这篇 Linux 教程直接给你排查思路和命令,照着敲就行。

用 ping 检查线路通断和延迟
ping 是最基础的网络诊断命令,它通过发送 ICMP 回显请求包来测试目标主机是否可达,同时返回响应时间。线路好不好,第一步就看 ping 的丢包率和平均延迟。
如何用 ping 判断线路质量
本地执行 ping 命令,指定目标 IP 或域名:
ping -c 10 8.8.8.8
-c 10 表示发送 10 个数据包
重点关注两个指标:
• **丢包率**:如果超过 5%,说明线路不稳定,大概率有拥塞或路由黑洞。
• **平均延迟**:一般国内访问国外 VPS 在 150ms-250ms 算正常,超过 300ms 体验就会很差。
持续 ping 监控抖动
加个 `-i 1` 参数,每秒发一个包,持续观察一分钟,能看出线路的抖动情况:
ping -i 1 -c 60 你的VPS_IP
-i 1 每隔 1 秒发一个包
如果连续几个包延迟从 180ms 跳到 500ms 再跳回来,那就是典型的高抖动,适合跑 BBR 或锐速这类拥塞控制算法来优化。
用 telnet 测试端口连通性
ping 能通不代表服务能用。很多 VPS 防火墙或安全组只放行了特定端口,telnet 就是专门用来测试某个 TCP 端口是否开放的。
测试 SSH 端口(22)是否可达
telnet 你的VPS_IP 22
如果返回 `Connected to 你的VPS_IP`,说明端口通。如果卡住不动或返回 `Connection refused`,说明端口被防火墙拦截或服务没启动。
测试 Web 服务端口(80/443)
telnet 你的VPS_IP 80
如果通,直接输入 GET / HTTP/1.1 然后回车两次,可以看到 HTTP 响应头
老鸟叮嘱:telnet 默认没装,Debian/Ubuntu 用 `apt install telnet`,CentOS 用 `yum install telnet`。别问为什么不用 nc,telnet 更直观,适合排障。
用 traceroute 定位线路瓶颈
ping 和 telnet 能告诉你“通不通”,但 traceroute 能告诉你“怎么通的”。它通过递增 TTL 值,追踪数据包经过的每一跳路由器,帮你找到哪一跳延迟暴涨或丢包。
用 traceroute 追踪回国线路
traceroute -n 你的VPS_IP
-n 用 IP 显示,不解析域名,速度快
输出样例(简化版):
1 192.168.1.1 0.5 ms
2 10.0.0.1 1.2 ms
3 203.0.113.1 3.5 ms
4 198.51.100.1 150 ms ← 这里延迟突然飙升,说明瓶颈在这里
5 你的VPS_IP 160 ms
如果第 4 跳延迟从 3.5ms 跳到 150ms,那这一跳就是国际出口或中转节点,线路质量差就卡在这里。
用 mtr 组合 ping 和 traceroute
mtr 是 traceroute 的升级版,持续追踪每一跳的丢包率和延迟,适合长时间观察:
mtr -r -c 10 你的VPS_IP
-r 生成报告,-c 10 发送 10 个包
如果某跳丢包率超过 10%,而后续跳丢包率更低,说明该节点在丢包但路由有冗余。如果后续跳丢包率也高,那基本断定该节点是瓶颈。
排障实战:常见回国线路问题及处理
问题一:ping 通但 SSH 连不上
八成是防火墙没放行 22 端口。先 telnet 检查,确认端口不通后,登录 VPS 控制面板检查安全组规则,或者直接在 VPS 上执行:
iptables -L -n | grep :22
查看 22 端口是否在 ACCEPT 规则中
如果没看到,就加一条放行规则:
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
问题二:traceroute 显示某跳延迟极高
这是典型的路由绕路或国际出口拥塞。解决方案:
• 换一台离你更近的 VPS 机房(比如从美国西岸换到日本)。
• 开启 BBR 或锐速,能缓解高延迟下的 TCP 性能。
• 如果业务重要,考虑用 CN2 GIA 或 BGP 中转线路的 VPS。
问题三:mtr 报告显示某跳 100% 丢包
别慌,很多骨干路由器为了性能会禁用 ICMP 响应,丢包 100% 但后续跳正常,属于正常现象。只有后续跳也丢包,才说明问题。
老鸟叮嘱:别看到 traceroute 里有一跳丢包就换机房。先确认后续跳是否正常,如果后续跳正常,那丢包那跳只是不响应 ICMP,不影响数据转发。
FAQ
1. ping 延迟很高但丢包率为 0,是什么原因?
大概率是线路距离远或国际出口带宽饱和。延迟高但无丢包,说明线路稳定但物理距离长,适合跑 BBR 优化 TCP 性能。
2. telnet 显示 Connection refused,但防火墙已放行,怎么办?
检查服务是否在运行。比如 SSH 服务没启动,用 `systemctl status sshd` 查看,如果没启动就 `systemctl start sshd`。
3. traceroute 命令在 Linux 上找不到怎么办?
安装一下就好:Debian/Ubuntu 用 `apt install traceroute`,CentOS 用 `yum install traceroute`。
4. 用 mtr 时,某跳丢包 100%,但后续跳正常,需要处理吗?
不需要。很多路由器不响应 ICMP 请求,属于正常现象。只有后续跳也丢包,才说明该节点有问题。
5. 回国线路质量差,除了换机房还有什么办法?
开启 BBR 或锐速能明显改善。另外,用 CDN 加速静态资源,或者搭建中转隧道(比如 frp)也能缓解。
转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9426.html 商家投稿邮箱:zhujixuanblog@qq.com
