1.
初步诊断:比对延迟与丢包
步骤:在本地和外部节点执行 ping 与 traceroute/mtr。命令示例:ping -c4 eu.example.com;traceroute -n eu.example.com;mtr -r -c100 eu.example.com。对比美国与欧洲目标的平均往返时延(RTT)与丢包率,记录出现跳点增加延时或丢包的位置。
2.
DNS 和解析路径检查
步骤:用 dig 与 host 检查解析是否定位到最近节点:dig +short eu.example.com @8.8.8.8;dig +trace eu.example.com。若解析到美国IP,考虑部署地理DNS或使用 CDN 的地理调度(GeoDNS/Load Balancing)。
3.
路由与互联(BGP/Peering)排查
步骤:查看 ISP 到目标的 AS 路径,可用 looking glass(如各大 IX)或使用 bgp.he.net。若路径绕行美国,联系网络供应商请求优化直连或申请更优的对等(peering)。提供具体出现问题的 traceroute 跳点作为证据。
4.
链路层与 MTU 问题排查
步骤:若发现分段或性能不稳定,检查 MTU:在 Linux 上 ip link show dev eth0;临时调整 ip link set dev eth0 mtu 1400 测试。服务器端可用 iptables 针对 TCP SYN 做 MSS clamp:iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu。
5.
TCP 性能调优(BBR、窗口、拥塞控制)
步骤:检查并启用 BBR:sysctl -w net.ipv4.tcp_congestion_control=bbr;持久化写入 /etc/sysctl.conf。调整读写缓冲:sysctl -w net.ipv4.tcp_rmem="4096 87380 6291456";sysctl -w net.ipv4.tcp_wmem="4096 65536 6291456"。用 iperf3 测试端到端吞吐。
6.
部署 CDN/Anycast 与地理负载均衡
步骤:若静态内容多,启用 Cloudflare/Fastly 等 CDN。对动态流量,考虑多活节点+Anycast或使用云厂商(AWS/Azure/GCP)在欧洲节点部署实例,并用 GeoDNS 或 AWS Route53 的 latency/geolocation 路由策略:创建 Record -> Routing policy -> 选择区域/延迟策略 -> 测试生效。
7.
问:如何快速确认是 DNS 还是路由问题?
答:用 dig +trace 与直接访问 IP 的 traceroute 比较。若解析到美国 IP 则为 DNS 调度问题;若解析正确但 traceroute 经美国中转则为路由/互联问题。
8.
问:启用 BBR 会带来风险吗?
答:BBR 在高带宽高延迟链路常有效,但需先在测试环境验证稳定性并监控 CPU/延迟。回滚只需恢复 tcp_congestion_control 为原值并重启网络进程。
9.
问:联系运营商时需要提供哪些信息?
答:准备好发生问题的时间段、目标 IP、traceroute 输出(带 hop IP 与 RTT)、mtr 报告与丢包比例,说明期望(例如添加对等或优化路由),方便对方定位并调整。
来源:优化建议当你发现欧洲服务器比美国慢时可采取的网络策略