1.
准备工作:收集基础信息
- 确认发生丢包的时间段和影响范围(单台实例/多个实例/整个可用区)。
- 记录实例ID、操作系统、网卡类型(ENI/增强型网络)、私有IP/公网IP、安全组和路由表配置。
- 如果可能,准备好另一台测试主机(国内/香港/外网)用于对比测试。
2.
第一步:基础连通性检测(ping)
- 在实例上执行:ping -c 100 8.8.8.8 或 ping -c 100 目标IP,观察丢包率和延迟抖动。
- 记录丢包发生的时间点和丢包百分比。如出现间歇性丢包,注意时间间隔与业务峰值的相关性。
3.
第二步:路径追踪(traceroute / mtr)
- 使用 traceroute -n 目标IP 或 mtr -rw 目标IP(Linux)跟踪路由跳数并定位首次丢包跳点。
- mtr 推荐运行一分钟以上:mtr -rwz -c 60 目标IP,保存报告(CSV或文本)用于转发给运营商或腾讯。
4.
第三步:端口与TCP层检测(tcptraceroute / curl)
- 对于TCP业务,使用 tcptraceroute 目标IP 端口 查看中间TCP三次握手是否发生丢失。
- 用 curl 或 telnet 测试应用端口连通性:curl -v --connect-timeout 10 http://目标IP:端口。
5.
第四步:带宽与丢包检测(iperf3)
- 在目标与测试端分别部署 iperf3:一端 iperf3 -s,另一端 iperf3 -c 目标IP -t 60 -i 5。
- 观察丢包(UDP 模式需要加 -u)和吞吐,确认是否为带宽饱和导致丢包。
6.
第五步:抓包分析(tcpdump / Wireshark)
- 在实例上用 tcpdump 抓取疑似丢包期间的流量:tcpdump -i eth0 host 目标IP -s 0 -w /tmp/trace.pcap &。
- 下载 pcap 用 Wireshark 分析重传、RST、ICMP unreachable、TCP Window Zero 或 MTU 问题(如 fragmentation/DF=1)。
7.
第六步:实例内核与网卡状态检查
- 查看网卡错误:ethtool -S eth0(或 ip -s link show eth0),关注 rx_errors、tx_errors、rx_dropped。
- 检查系统队列/负载:netstat -s、ss -s、dmesg | tail 查找驱动或硬件错误。
8.
第七步:腾讯云平台与安全组路由检查
- 登录腾讯云控制台检查安全组规则、NAT网关、VPN/专线与路由策略是否有限制。
- 若使用公网IP,检查是否配置了负载均衡、DDoS防护或NAT转发导致包丢失。
9.
第八步:定位到运营商或骨干链路
- 若 traceroute/mtr 在腾讯骨干或上游网络处出现丢包,记录 hop、经纬度和时间戳。
- 在不同地域(国内节点、其他云区域)做同样测试以对比是否为腾讯香港区域链路问题。
10.
第九步:提交工单与上报材料准备
- 准备材料:实例ID、时间戳(UTC)、mtr/traceroute 输出、tcpdump pcap、iperf3 报告、系统日志(dmesg、/var/log/messages)。
- 在腾讯云控制台提交工单时附上以上材料,并标明是否影响业务(紧急程度)。
11.
第十步:临时缓解与优化建议
- 临时换用同可用区其他实例或调整实例规格启用增强网络;尝试切换到其它可用区或跨区域回源。
- 调整MTU(如出现分片)或配置TCP重试/连接池,必要时使用CDN/Load Balancer或专线来规避不稳定链路。
12.
问:如何快速判断是本地实例问题还是腾讯网络问题?
答:在实例内做 ping、mtr 到多个外部节点(国内、香港公网、目标业务)并在另一台独立测试机做相同测试。若只有本实例异常,检查网卡错误、系统队列和安全组;若多台实例均在同一跳后开始丢包,通常是腾讯云网络或上游链路问题,需提交工单并附 mtr/tcpdump。
13.
问:抓包时要注意哪些关键点以便腾讯工程师分析?
答:抓包请包含时间戳、完整三次握手、重传、ICMP信息与丢包期间的连续流量;保存 pcap 并记录抓包命令、网卡名称与抓包起止时间,附上 mtr/traceroute 输出能更快定位。
14.
问:遇到持续丢包的应急处理流程是什么?
答:先切换到备用实例或可用区降低业务风险,同时按上文步骤收集证据(mtr/iperf/tcpdump),提交腾讯工单并开启临时流量切换(DNS/负载均衡/回源),必要时联系上游运营商或使用专线。
来源:网络工程师教你排查腾讯香港云服务器丢包了的常见原因与工具