坑边闲话:最近这段时间一直在慢慢调整我的异地组网拓扑。之前那套中心化方案虽然国内访问体验非常丝滑,但洲际链路延迟实在让人抓狂,很多操作总感觉“卡半拍”。趁着春节假期有空,我干脆把整个网络拓扑重新梳理了一遍,顺便也测试了几种不同的跨境连接方式。没想到这次小小调整,整体体验提升非常明显,也顺便把一些踩过的坑记录下来,方便后面复盘,也希望对有类似需求的朋友有参考价值。

此前一直用的是 BV1hm4y167F5 介绍的中心化组网方案,在国内体验特别好,但是洲际延迟太高了。用了一阵子 Cloudflare Tunnel 的基于云管理的服务发布隧道,感觉也还挺好,而且免费!白嫖党狂喜!

可惜的是 Cloudflare Tunnel 貌似对 HTTP 之外的协议支持不行,SSH 之类的无法轻松使用。后来群友建议可以自己优选 VPS,然后自己做优化拓扑。于是购买了白丝云的 AS9929 VPS,延迟从 310 降低到了 205 左右,很多协议的性能提升非常明显。

不过遗憾的是 Vim 编辑器在 200 毫秒的延迟下依然很难用,我选择继续使用 VSCode.

如图所示,现在的拓扑结构是一个典型的链状组网,相对来说配置起来会简单不少,按照之前的教程简单修改一下 WireGuard Allowed_IPs 即可。

图 1. 使用 VPS 优化之后的 WireGuard 异地组网拓扑。

下面说几个注意事项:

第一,由于 VPS 流量有限,一个月 500GB-1TB,所以要尽量降低异地组网软件本身的协议开销,比如尽量关闭 WireGuard 的 keepalive;

第二,特别耗费流量的协议建议走 Cloudflare Tunnel,比如我发现北京的 Prometheus 会每隔 5s 采集一次这边机器的系统数据,一天耗费的流量竟然能达到 1GB 左右,所以我果断把 exporter 用 cloudflared 发布。

最后,如果网络特别复杂,建议使用 BGP 通告,这样在路由控制方面会更方便一些。