1.
原始环境:香港 CN2 VPS(供应商A),线路标注为 CN2 优化线路。
服务类型:使用 Shadowsocks(ss)做翻墙代理,端口 8388,协议 plain。
症状:用户反馈经常断连、延迟飙高,Speedtest 丢包 3%-5%,部分时间完全不可用。
初步判断:怀疑运营商/上游对 ss 特征封禁或主动限速,CN2 路由本身并非稳定保障。
目标:在不能直接用 ss 的前提下,保留 CN2 优势(低时延)并实现流量分流与稳定备援。

2.
traceroute 对比:走 CN2 的跳数少但在某些节点出现大量重传与 ICMP 限制。
ping 数据:高峰期平均 RTT 从 40ms 上升至 180ms、丢包率 2%~5%。
包捕获:tcpdump 显示大量 RST/ICMP unreachable 针对 ss 端口的回退。
服务端日志:shadowsocks 无明显异常,但连接建立后立即中断的记录较多。
结论:运营商或上游对 ss 特征识别并干预,需改用伪装/多线分流与端口隐藏。
3.
改造方向:用 TLS + WebSocket(或 Trojan)伪装为 HTTPS 流量,从而通过 SNI/443 端口降低被识别风险。
实现方式:在 VPS 上部署 Caddy 或 nginx(stream/反向代理)做 TLS 终端,后端转发到代理程序。
建议证书:使用 Let's Encrypt 自动续期证书,域名使用真实业务域名与 CDN 配合。
示例 nginx stream 简要流程:客户端(ws+tls)→ CDN/域名 → nginx TLS → 本地代理(trojan/shadowsocks)。
优点:多数流量被判定为正常 HTTPS,极大降低被 DPI/策略封禁概率。
4.
思路:根据目的地/端口/用户流量类型,将流量打标并走不同路由表(CN2/备用/直连)。
工具链:ipset(维护目标 IP 段)、iptables(CONNMARK/mark)、ip rule/ip route(多表路由)。
示例命令(关键步骤):
将目标 IP 段加入 ipset:ipset create cn2 dsthash && ipset add cn2 1.2.3.0/24
打标:iptables -t mangle -A OUTPUT -p tcp -m set --match-set cn2 dst -j MARK --set-mark 0x1
路由规则:ip rule add fwmark 0x1 table 100; ip route add default via x.x.x.x dev eth0 table 100
效果:满足条件的流量走 CN2 优化表,其他流量走备用或本地直连,减少单一路径被封的风险。
5.
案例概况:用户使用 2 台 VPS 做主备,主节点为香港 CN2(供应商A),备节点为香港普通带宽(供应商B)。
主节点配置示例:4 vCPU / 8 GB RAM / NVMe 40 GB / 带宽 200 Mbps(不限流量) / Ubuntu 22.04 / kernel 5.15 + BBR。
备节点配置示例:2 vCPU / 4 GB RAM / 带宽 100 Mbps / Ubuntu 20.04。
性能对比数据(优化前后,平均值):见下表展示主要指标变化。
| 指标 | 优化前(ss plain) | 优化后(ws/tls + 分流) |
|---|---|---|
| 平均 RTT | 120 ms | 45 ms |
| 丢包率 | 3.8% | 0.4% |
| 吞吐(单流) | 35 Mbps | 90 Mbps |
| 可用性(高峰) | 70% | 98% |
6.
多线并用:主用 CN2,辅以其他香港/新加坡/日本等节点作为备份,DNS 结合健康检查进行切换。
防护机制:采用 CDN + Web 应用防火墙,配合 TCP/UDP 层 DDoS 防护,必要时使用供应商带宽清洗。
自动化:使用 keepalived 或脚本基于 HTTP/ICMP 探测做故障切换,结合动态路由策略。
监控与日志:Prometheus + Grafana 监控链路延迟/丢包,集中采集 nginx/trojan 日志以便快速定位。
安全加固:关闭不必要端口,启用 fail2ban,强制 TLS1.2+,并限定证书 SNI 与域名的一致性。