1. 概述:先确定优化目标与测试基线
- 明确目标(降低延迟、提高吞吐、稳定丢包)。
- 建议先做基线测试:在 VPS 上运行 iperf3(服务端)和从目标客户端跑 iperf3(客户端)。
- 常用命令:apt update && apt install -y iperf3 mtr traceroute curl
2. 步骤一:网络路由与链路诊断(必做)
- 用 mtr -rw <目标IP或域名> 观察路由跳点、丢包与延迟变化。
- traceroute -n
以及 ping -c 20 。记录在峰值/非峰值时段。
- 若看到某跳点丢包或高延迟,联系搬瓦工工单并附上 mtr/traceroute 输出,要求运维排查上游链路或更换出口线路。
3. 步骤二:选择合适的网络产品与出口运营商
- 购买时优先选带有“CN2/直连”或说明延迟更优的线路(搬瓦工会标注不同网络)。
- 若已购买但表现差,可申请后台换线或使用供应商提供的其它机房做对比。
- 对于目标在欧美,确认香港机房到美西/美东的 BGP 路径是否直连,避免走复杂绕路。
4. 步骤三:内核 TCP/TCP 队列 与 BBR 启用(关键)
- 编辑 /etc/sysctl.conf,追加以下内容(示例):
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_mtu_probing = 1
- 保存后运行 sysctl -p;验证:sysctl net.ipv4.tcp_congestion_control && lsmod | grep bbr
5. 步骤四:MTU 与网卡卸载(避免分片)
- 常见问题是 MTU 导致分片,建议在 VPS 上测试并调整:ip link set dev eth0 mtu 1450(或 1400、1420 试验)。
- 关闭高性能卸载可能在某些虚拟化环境下有帮助:apt install ethtool;ethtool -K eth0 gso off tso off sg off 。
- 对 WireGuard/OpenVPN 调整隧道 MTU(WG 常用 1420),OpenVPN 使用 --tun-mtu/--mssfix 参数。
6. 步骤五:应用层优化:隧道、缓存与 DNS
- 优先使用 UDP 的 WireGuard 或 V2Ray(VMess/WS + TLS)以降低延迟,启用 keepalive。
- 启用 gzip/brotli、合理设置 Nginx proxy_buffer_size 与缓存。
- DNS 使用 1.1.1.1、8.8.8.8 或部署本地缓存(Unbound/dnsmasq),可减少 DNS 解析延迟。
7. 问:启用 BBR 会有风险或与 VPS 环境冲突吗?
- 回答:通常不会,但少数旧内核/虚拟化环境内核不支持。先用 sysctl net.ipv4.tcp_available_congestion_control 查看是否含 bbr。启用后用 iperf3 测试吞吐,若出现问题可回滚 sysctl 设置并重启网络服务。
8. 问:海外延迟高时我先检查哪些项目?
- 回答:按顺序检查:1) mtr 查看哪一跳延迟/丢包;2) 调整 MTU 试验 1450/1420;3) 启用 BBR 并测试 iperf;4) 换 DNS 与使用 CDN;5) 与搬瓦工工单沟通要求换线或机房。
9. 问:针对特定国家/地区(如美国或欧洲)有什么额外建议?
- 回答:美国建议优先选择与美西/美东有直连或较短 BGP 路径的香港出口;对欧洲,考虑走经日本/台湾再跨太平洋的路径会更稳。必要时部署多节点负载均衡或使用目标区域的 CDN/镜像以减小跨洋流量。