搜索 K
Appearance
我做过一件挺傻的事:2021 年某次跨境会议前 40 分钟,主力机场的入口 IP 被墙,手忙脚乱翻遍 Telegram 群找临时节点,最后还是用手机热点硬扛过去。那之后我给自己定了一条工程纪律——任何单一订阅都不是架构,只是赌注。
这篇不是"哪家机场好"的软文,而是一份把网络当作生产系统来设计的容灾方案。核心结论先摆在这:主力包月负责日常吞吐,按量计费负责兜底与长周期,两者用客户端策略组自动串联,才是个人跨境网络的最高可用形态。
很多人把"机场挂掉"理解成玄学,其实拆开看,故障点清清楚楚分五层:
第一层:出入口运营商与机房。 中转入口机房断电、上游 Transit 路由抖动、光缆施工挖断——这类故障每年都会发生若干次,与机场本身服务质量无关,但结果就是你连不上。
第二层:跨境链路拥塞。 中国大陆出口带宽是典型的"晚高峰稀缺资源"。电信 163 骨干网在 20:00–23:00 的跨境段丢包率经常飙升到 5%–20%,TCP 在这种丢包率下会触发拥塞窗口剧烈收缩,表现为"能连但慢得离谱"。
第三层:出口 IP 的主动探测与封禁。 共享出口的节点,只要有人跑异常流量,整段 IP 就可能进入黑名单。这是共享池最大的系统性风险。
第四层:超售。 一个 10Gbps 入口卖 3000 个用户,人均理论带宽 3.3Mbps。按 30% 并发率算,晚高峰人均不到 1Mbps。
第五层:商业风险。 跑路、支付通道被冻结、上游被封号——这是最不可控、也最容易被忽视的一层。
按量计费为什么天然更适合兜底? 因为它的商业结构与用户消耗强绑定:你跑多少 GB,商家收多少钱。多卖一个用户不会显著摊薄边际成本,但会带来边际收入,所以按量池缺乏无限超售的动机。同时备用场景的实际���流量通常只有 5–30GB,成本被压在极低区间。这是"包月主力按量保底"这套组合拳的经济学基础。
理解这几个概念,你才能看懂商家宣传里哪些是真的、哪些是话术。
实测判定方法:对节点做 mtr,如果中间出现大量境外公网 IP 跳,基本就是 BGP 中转;如果用户侧到落地之间只有"入口"和"落地"两个公网跳、中间净空,才可能是真专线。这条判据后面排障章节还会用到。
成熟商家会在入口同时接入电信 + 联通(甚至加移动),通过 BGP 宣告实现就近接入。部分还会做 Anycast 同 IP 多地宣告。双 ISP 入站的意义在于:单一运营商故障时,另一条路径仍可承载。 这是"永不失联"在物理层的第一个保险丝。
运营商对跨境流量做 QoS 整形是常态。BBRv3 相对 BBRv1 的改进在于:更激进的带宽探测 + 更强的丢包恢复 + 更低的排队延迟。在跨境高丢包链路上,BBRv3 的吞吐提升通常是数量级的,这也是近两年部分商家体验明显改善的技术来源。但要注意:BBR 只能优化你自己这一端的发送行为,对链路本身的丢包无能为力。
TLS Reality 的核心是"借壳"——握手时借用真实大站的证书链,无需自备域名,服务端不持有私钥,使得主动探测难以通过。配合 uTLS 伪造客户端指纹(如 Chrome 的 ClientHello),能显著降低被特征识别的概率。代价是:如果服务端配置被玩坏,会出现"TCP 握手成功但 TLS 卡死"的现象——这正是后面排障表里的一条典型症状。
| 切换方式 | 触发延迟 | 感知中断 | 适用 |
|---|---|---|---|
| 人工切换 | 30–120 秒 | 明显 | 无客户端配置能力 |
| url-test 自动选优 | 60–300 秒 | 明显(选优非容灾) | 多节点同池 |
| fallback 顺序故障转移 | 3–8 秒 | 几乎无感 | 主力+备用异构池 |
| 双客户端并行(双设备) | 0 | 无 | 极端关键场景 |
关键点:url-test 是"选最优",不是"容灾"。 它会在延迟变化时反复横跳,反而把你的流量甩到按量池上。真正做容灾要用 fallback:按顺序固定优先级,前一个探测失败才降级到下一个。
下表是"主力包月"与"按量保底"两类方案的可量化差异,数据来自我方 2025Q4–2026Q1 的持续采样(晚高峰 21:00–23:00 三次取中位数,测试环境为华东电信千兆家宽)。
| 维度 | 主力包月(专线型) | 按量保底(按量计费型) | 评测/验证方法 |
|---|---|---|---|
| 月固定成本 | ¥25–60 | ¥0(预充值,随用随扣) | 官网套餐页 |
| 计费粒度 | 按月/季/年 | 按 GB(约 ¥0.5–2.0/GB) | 账单明细 |
| 峰值下行 | 300–1000 Mbps | 100–500 Mbps | iperf3 -P 8 多线程 |
| 晚高峰衰减率 | 10%–35% | 5%–20% | 三次测速取中位 |
| 首字节延迟 TTFB | 80–180 ms | 120–260 ms | curl -w time_starttransfer |
| 入口冗余 | 双 ISP 入站常见 | 单/双 ISP 混合 | whois + mtr 路由 |
| 故障切换耗时 | 手动 30–120 s | 自动 3–8 s | 客户端健康检查日志 |
| 出口 IP 存活周期 | 3–14 天 | 7–30 天 | 定期记录出口 IP |
| 商家运营年限 | 1–5 年 | 建议选 3 年以上 | 域名 whois + 公告 |
| 架构角色 | 日常吞吐主力 | 兜底 + 长周期低耗 | —— |
读表要点:按量池的晚高峰衰减率通常更低,原因就是前面说的"缺乏超售动机"。它牺牲的是峰值带宽和单价经济性,换来的是稳定性。这正是它适合当"保险"而不适合当"主力"的原因。
① 日常办公 / 远程开发(每日 4–10 小时在线) 主力选专线型包月,月付 ¥30 上下档位。备用选按量池,预充 ¥50 可用两三个月。预期月成本 ¥40–55。
② 自媒体 / 视频上传(大流量、突发型) 主力必须选大带宽专线包月,且要注意"不限量"背后的限速条款。备选用按量池承接溢出流量,注意按量单价——上传 100GB 按 ¥1.5/GB 就是 ¥150,这个场景按量只做兜底,不做常规溢出。
③ 海外华人 / 回国加速 反向场景逻辑相同:主力包月跑回国专线,备选用按量池在主用故障时顶几分钟。注意回国线路与出海线路的机房完全不同,不能互为主备。
④ 长周期低频用户(每月只用几天) 这类用户其实不需要包月主力,纯按量计费就是最优解。用多少扣多少,不浪费订阅周期。适合把预算集中在按量池上。
⑤ 关键业务 / 直播推流 双客户端并行(两台设备或双进程),或主力包月 + 备用按量 + 手机热点三级冗余。这种场景下稳定性溢价远高于订阅费。
Mihomo 内核支持 proxy-providers,这是实现双订阅合并容灾的正确姿势:
proxy-providers:
main:
type: http
url: "主力订阅地址"
interval: 3600
health-check: { enable: true, url: "http://www.gstatic.com/generate_204", interval: 180 }
backup:
type: http
url: "按量备用订阅地址"
interval: 3600
health-check: { enable: true, url: "http://www.gstatic.com/generate_204", interval: 180 }
proxy-groups:
- name: PROXY
type: fallback
use: [main, backup]
url: "http://www.gstatic.com/generate_204"
interval: 180
tolerance: 50三个必须改的默认值:
interval 默认常为 300 秒,故障感知太慢。改到 120–180 秒,兼顾灵敏度和探测开销。fallback 组不要开 lazy。开了懒探测,备用池不被主动测活,真出事时它可能本身也是死的。tolerance: 50 防止主用节点延迟小幅抖动就触发切换——否则你的按量流量会被无谓消耗。这里是最大的坑:Shadowrocket 的策略组只能引用单一订阅内的节点,不能跨两条订阅做 fallback。想实现双订阅容灾有两条路:
proxy-providers,配置逻辑与 Mihomo 一致。ClashMetaForAndroid 直接沿用上面的 Mihomo 配置。sing-box 用户用 outbound 的 urltest + selector 组合,注意 interrupt_exist_connections: false,避免切换时把正在下载的连接掐断。
enhanced-mode: fake-ip 或显式指定 DoH,否则 DNS 查询走本地运营商,既污染又暴露。rules,只从两个 provider 取节点。interval 错开 10 分钟,避免同时拉取造成瞬时带宽抖动。故障发生时,别急着换机场。按下面这套命令走一遍,5 分钟内就能定位到故障层。
# 1. 路径质量:丢包从哪一跳开始出现
mtr -rwzbc 100 1.1.1.1
# 2. TCP 层可达性与握手时延(ICMP 被禁时的替代方案)
tcping -t 3 -c 10 your-node.example.com 443
# 3. DNS 是否被劫持/污染
scutil --dns | head -30 # macOS
dig +short @223.5.5.5 www.google.com # 国内 DNS
dig +short @8.8.8.8 www.google.com # 境外 DNS,两者不一致即存在污染
# 4. TLS 握手分段耗时定位
curl -o /dev/null -s -w "connect=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n" https://www.google.com
# 5. 指定出口 IP 验证 SNI 阻断
curl -v --resolve www.google.com:443:1.1.1.1 https://www.google.com
# 6. TCP 路由追踪(绕过 ICMP 丢弃策略)
sudo traceroute -T -p 443 -n 1.1.1.1**判定表: