1.
背景与目标
• 说明研究对象:聚焦在香港常见运营商(PCCW、HKT、HKBN、CT-HK、China Unicom HK)下的 VPS,关注 NAT 场景的延迟与丢包。
• 目标:通过测量、分析并给出可复现的内核与网络调优策略,降低延迟与丢包,提升并发连接稳定性。
• 测试方法概述:使用 ping(1000 次)、iperf3(10s 测试)与 traceroute,采样时间覆盖高峰与低峰。
• 限制说明:VPS 通常受虚拟化、端口速率与宿主机网络队列限制,部分运营商存在 CGNAT 与路由劣化。
• 成果形式:提供具体 sysctl、conntrack、qdisc 设置与真实案例对比数据,便于运维复现与验证。
2.
不同运营商测得的原始数据(对比表)
• 测试点:同一时间从香港 VPS 到广州节点(电信骨干)测量。
• 测试项:平均 RTT(ms)、丢包率(%)(ping 1000 次)、iperf3 丢包/重传指示。
• 测试环境:VPS 基本配置为 4vCPU/8GB/1Gbps 公网口,Ubuntu 22.04,默认内核设定。
• 说明:表中数据为“未优化前”采样,后续段落给出优化后对比。
• 表格如下所示(居中,边框=1,文字居中):
| 运营商 | 平均 RTT (ms) | 丢包率(%) | iperf3 重传/100MB |
| PCCW | 8.3 | 0.12 | 0 |
| HKT | 10.1 | 0.28 | 1 |
| HKBN | 12.7 | 1.15 | 3 |
| CT-HK | 14.9 | 2.47 | 5 |
| China Unicom HK | 9.8 | 0.82 | 2 |
3.
延迟与丢包的主要成因分析
• CGNAT 与公网稀缺:部分运营商使用 Carrier-Grade NAT,增加了额外的 NAT 路径与状态维护,导致丢包与重传。
• 拥塞与队列缓冲:宿主机或物理交换机队列过深(bufferbloat)会显著增大延迟并引发丢包。
• 互联互通与分流策略:不同 ISP 到大陆的骨干路由与对等策略不同,导致 RTT 与丢包差异明显。
• VPS 限制:虚拟化层的 virtio/bridged 网络、vNIC 队列数、SR-IOV 支持缺失都会影响延迟。
• 内核默认值不足:conntrack 表过小、TCP 窗口与拥塞控制未优化会在高并发下造成丢包与超时。
4.
NAT 与内核调优的具体策略(可直接复制)
• conntrack 调优(示例):echo 262144 > /proc/sys/net/netfilter/nf_conntrack_max;sysctl -w net.netfilter.nf_conntrack_max=262144。
• 连接超时调整(示例):sysctl -w net.netfilter.nf_conntrack_tcp_timeout_established=86400;sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30。
• 内核网络参数(推荐值):sysctl -w net.core.rmem_max=16777216; sysctl -w net.core.wmem_max=16777216; sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"; sysctl -w net.ipv4.tcp_wmem="4096 65536 16777216"。
• 拥塞控制与队列:启用 BBR:sysctl -w net.ipv4.tcp_congestion_control=bbr;使用 fq_codel/cake:tc qdisc replace dev eth0 root cake bandwidth 1gbit 指令示例。
• MSS/MTU 与 iptables 优化:启用 TCP MSS 修正避免分片:iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu。
• 实施步骤建议:先扩 conntrack,再启用 fq_codel,再开启 BBR,最后调整 MSS 与内存;每步观察 24 小时并记录数据。
5.
真实案例与服务器配置示例
• 案例 A(PCCW VPS 优化示例):配置:4 vCPU (Xeon), 8GB RAM, NVMe 80GB, 1Gbps。原始:RTT 8.3ms、丢包 0.12%。调优:nf_conntrack_max=262144、BBR、fq_codel。结果:RTT 平稳在 7.4ms,丢包降至 0.03%,iperf3 重传降为 0。
• 案例 B(HKBN CGNAT VPS 复健):配置:2 vCPU, 4GB, 500Mbps,存在 CGNAT 导致高丢包。措施:申请公网 IPv4 或切换到 IPv6;本地做 conntrack 扩容与 MSS clamp,并通过 WireGuard 做隧道避开劣化链路。结果:丢包从 1.15% 降到 0.12,RTT 从 12.7ms 降至 9.6ms(隧道到优质出口)。
• sample iperf3 输出片段(优化后):[ 5] 0.00-10.00 sec 950 MBytes 797 Mbits/sec 0 retransmits。
• traceroute 对比(优化前后):优化前显示多次 * 丢包与高跳延迟,优化后仅保留稳定几跳,最后一跳延迟下降 20%-30%。
• 配置备忘(可复制):/etc/sysctl.d/99-net.conf 放置上述 sysctl,使用 systemd-sysctl reload 应用,tc 脚本加入开机脚本。
6.
CDN、DDoS 防御与架构建议(总结)
• 对静态/大流量建议用 CDN(Anycast)将用户请求引导到就近节点,减少对单一 HK VPS 的压力与 NAT 负载。
• DDoS 防护:使用云端清洗(Cloudflare Spectrum、第三方清洗)避免 VPS 被打满带宽;在 VPS 上保留合理的 iptables/nft 限速规则以防主机过载。
• 多线/多 ISP:对关键服务建议多线 BGP 或负载均衡,多运营商部署可在某个 ISP 出现丢包时自动切换。
• 监控与告警:部署持续 ping/iperf 测试与 conntrack 利用率监控(Prometheus+Grafana),阈值超限自动告警。
• 最后建议:先做测量再调优,优先解决链路与队列问题(fq_codel/cake)、扩容 conntrack、开启 BBR、尽量避免 CGNAT;若仍有问题考虑使用隧道或更换更好对等/骨干的运营商。
来源:对比不同运营商 香港vps nat延迟与丢包优化策略全解析