1.
准备与目标设定
- 明确目标:让来自中国大陆访问香港云主机时尽量走中国电信CN2(CN2-GIA/CN2 GT)骨干以降低抖动与延迟。
- 准备工具:本地或云端机器能运行 traceroute/mtr/ping、ssh、tcpdump、iptables/iproute2、root权限。
2.
基线测试:如何判断当前路由
- 在大陆网络做 traceroute:Linux/macOS: traceroute -n -w 1 -q 1 目标IP;Windows: tracert -d 目标IP。
- 用 mtr 长跑采样:mtr -r -c 100 目标IP,看丢包/延迟跳数和进入运营商标识(如电信 hop 显示 CT)。
- 记录 RTT、丢包、进入骨干的第一个 ASN(可用 whois 或 ipinfo.io 查询 ASN)。如果没有走 CN2,通常会先到联通/多次经过 CNUnet 等。
3.
与云服务商沟通模板与必备信息
- 提供信息:目标实例IP、账号ID、测得的 traceroute/mtr 输出截图或文本、期望走 CN2 的说明。
- 模板示例:请将此实例公网出口宣告到中国电信 CN2(或使用 CN2 GT/GIA 互联)并确认 BGP 通告策略,或提供 CN2 带宽线路选项与开通时间及费用。
- 要求提供:是否支持 BGP 社区、是否能把线路调整到 CN2、是否能做直连/加速端口。
4.
若服务商无法直接改线:用隧道到 CN2 节点
- 思路:在能走 CN2 的机房(例如某个国内或香港合作机房)部署隧道出口,通过 GRE/IPSec/OpenVPN 将流量引到该出口。
- 操作示例(创建 GRE):在本机和远端执行 ip link add gre0 type gretap remote <远端IP> local <本机IP> ttl 255;ip link set gre0 up;ip addr add 10.10.10.2/30 dev gre0。
- 在主机上做策略路由:ip rule add fwmark 1 lookup 100;ip route add default via 10.10.10.1 dev gre0 table 100;用 iptables -t mangle 标记需走隧道的流量。
5.
Linux 内核与 TCP 层优化(实操命令)
- 启用 BBR:echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf;echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf;sysctl -p。验证:sysctl net.ipv4.tcp_congestion_control 或 lsmod | grep bbr。
- 调整 socket 缓冲区与 TIME_WAIT:sysctl -w net.ipv4.tcp_tw_reuse=1;sysctl -w net.ipv4.tcp_fin_timeout=30;根据业务调整 net.core.rmem_max / wmem_max。
6.
MTU 与 MSS 调整,减少分片
- 检查路径 MTU:tracepath 目标IP,观察 pmtu 值。若出现分片或 ICMP 被丢弃,尝试降低 MTU:ip link set dev eth0 mtu 1460(或 1400)并重测。
- 对于 TCP 可用 iptables MSS 修正:iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu。
7.
路由策略与流量选择(精细化)
- 基于目标/端口策略路由:用 iptables 标记特定业务流量(如 80/443):iptables -t mangle -A OUTPUT -p tcp --dport 443 -j MARK --set-mark 1;并用 ip rule/ip route 指定走隧道表。
- 测试:使用 curl --resolve 或浏览器访问并用 mtr 查看是否走隧道。
8.
应用层与 DNS 优化
- 使用地理就近的 DNS 或智能解析(DNSPod/CN云)把大陆用户解析到最近的加速出口。
- 静态资源放 CDN:若延迟敏感的静态资源可以放在大陆 CDN(注意备案与合规),减轻跨境链路压力。
9.
监控与回归测试
- 建立持续监控:用定时 mtr/ping 脚本(crontab)把结果上传到监控平台,设置阈值告警。
- 回归验收:每次供应商或隧道调整后,至少在多个大陆运营商节点(电信/联通/移动)运行 24 小时采样,比较平均 RTT、抖动、丢包率是否改善。
10.
问:什么命令能快速判断是否走CN2?
问:我如何一眼看出路由是否走CN2?
答:用 traceroute/mtr 看进入中国骨干的 AS 与节点名字。若能看到 China Telecom 字样、AS4134/AS9808(或服务商明确反馈 CN2)并且中间跳数较少、抖动低,多数就是走 CN2;同时可用 whois/ipinfo 验证目标 ASN。
11.
问:启用 BBR 与改 MTU 会破坏现有服务吗?
问:内核调优风险大吗?
答:常规 sysctl 调优(启 BBR、调整 MTU/MSS)风险可控,但建议先在测试实例或非高峰时段验证;MTU 改动可能导致某些 VPN/隧道失效或分片问题,操作前备份配置并准备回滚命令。
12.
问:如果云商不支持改线,还有更简单方案吗?
问:没有供应商配合我还能做什么?
答:可以通过第三方加速(国内加速节点+隧道)、使用 CDN 缓存静态资源、把热点业务迁移到支持 CN2 的机房或使用商业 CN2 加速服务。隧道或代理虽有成本,但常是最实际的替代方案。
来源:运维实战 香港云主机走cn2线路如何 优化路由与延迟表现