1) 步骤:在本地终端运行 ping -c 20 <目标IP>;记录丢包比例与平均RTT。
2) 判断:若丢包>1%-2%或RTT异常波动,说明路径存在问题;若无丢包但延迟高,属于物理距离或链路拥塞。
1) Linux/Mac:mtr -rwzbc 100 <目标IP>;Windows:使用 WinMTR。
2) 观察哪一跳开始出现丢包(连续多次且在该跳之后仍然丢包),将问题定位到某个自治域或链路。
1) 在东南亚服务器启动 iperf3 -s;本地运行 iperf3 -c <目标IP> -t 60 -R(或不加-R双向测试)。
2) 记录丢包、抖动与吞吐,确认是单向丢包还是双向链路问题。
1) 测试:从本地 ping -M do -s
2) 若发现较小的MTU可达,说明路径MTU丢包或ICMP被过滤。解决:在路由器/防火墙上设置 MSS clamp(例如在边界路由器上 iptables 或 PPPoE 链路调整MSS至1400-1450)。
1) 本地和服务器端检查防火墙规则(iptables/nftables/ufw、云安全组),是否有对ICMP/TCP端口限速或丢弃策略。
2) 临时放宽规则做对照测试,若丢包消失则为防火墙策略问题,调整rate-limit或允许必要探测包。
1) 在本地或服务器抓包:tcpdump -i eth0 host <对端IP> and tcp -w dump.pcap。
2) 用Wireshark看重传、RST、DF位标志、ICMP不可达或分片错误,定位是哪一端丢弃或网络中间设备触发丢包。
1) 使用公网Looking Glass或BGP工具(如 bgp.he.net、RIPE RIS)查看到目标的AS路径是否绕行、是否有频繁变换。
2) 若路径绕行或中间AS不稳定,联系自己的ISP或选择有更好东南亚对等的云/机房。
1) 在机房请求看交换/路由器接口错误计数(ifconfig/ethtool、show interfaces counters)。
2) 若发现CRC、丢帧或队列溢出,要求机房更换光模块、排查SFP或线路问题。
1) 使用VPN或云中转(例如在香港、新加坡部署跳板服务器)做绕路测试,判断是否是特定链路问题。
2) 长期方案:选用有良好东南亚骨干和对等关系的CDN/云提供商,或启用多出口冗余链路。
问:我怀疑丢包,是本地ISP的问题还是对端机房的问题?
答:用两条方法判断:一是在同一时间用另一条网络(手机4G/不同ISP)重复mtr/iperf测试;二是让机房或第三方从他们侧ping/traceroute回你IP。如果本地多条链路都正常而机房视角显示丢包,多为机房或中间AS问题;反之则是本地ISP。
问:我不会操作路由器,如何设置 MSS clamp 避免分片导致丢包?
答:常见Linux/iptables示例:iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu。家用路由器可在高级设置里调整MTU或启用“TCP MSS调整”。操作前备份配置并逐步测试。
问:我要向ISP或机房提交工单,应该提供哪些诊断数据?
答:准备好:(1)mtr/traceroute输出(包含时间戳);(2)ping丢包和RTT结果;(3)iperf3测试报告;(4)抓包文件(pcap);(5)问题出现时间段与影响范围。提供这些可大幅加快定位与修复。