如何用Claude在两小时内搭起跨国ECS服务器之间的WireGuard组网
简而言之: Claude在WireGuard组网里真正的贡献,是把整套peer配置——每一个公钥、每一段AllowedIPs、每一个endpoint——一致地生成出来,不出那种会吃掉你一个下午的手抄错误。这正是三到四个节点、两小时能建成的原因。两小时之内包含:密钥、配置、防火墙规则、拉起链路,以及双向验证每一条路径。两小时之外的是:服务器本身已经存在、跨境合规审查、高可用设计、监控,以及密钥轮换策略。
一家在深圳、香港和新加坡都有业务负载的公司,迟早需要这些服务器之间私密地互通——一个数据库副本、一个内部API、一个绝不该暴露在公网上的备份目标。而企业级SD-WAN报回来的那个数字,对四十个分支机构是合理的,对三台虚拟机则完全说不通。
WireGuard是那个显而易见的替代方案。它很小、跑在内核里,一份完整的配置文件短到一屏就能读完。让它显得比实际更难的地方在于:每个peer都必须知道其他每个peer的公钥和允许的地址段,而一个打错的字符,会造出一条干净地建立起来、却什么也不传的隧道。正是这种失败——看上去很有底气、悄无声息、追查起来极其枯燥——是语言模型能拿掉的那部分。
这是一份针对你自己拥有的基础设施、在你自己掌控的云账号里进行的构建指南。如果你更想看看同一个问题作为一个交付项目长什么样,我们的广州外贸公司SD-WAN与WireGuard案例讲的是托管版本。
为什么跨境的服务器到服务器互通比看上去难
问题很少出在隧道协议本身,而是出在它周围的一切。
云原生的对等互联跨不过这道缝。 VPC对等连接和中转网关在同一家云厂商内部、甚至同一个地域内部都很好用。但当你的资产是深圳的阿里云加新加坡的AWS,或者两个国家的两个独立账号时,原生方案要么就到此为止,要么变成一场商务谈判。
商业方案的定价是为另一种体量的公司准备的。 托管SD-WAN、专线和云上互联产品都是真正的答案,而它们的尺寸都是按"有分支机构、有设备、有合同期"的资产规模来定的。三台服务器不是那种规模。
而合规这一维确实不一样。 涉及中国内地地域实例的跨境网络连接属于受监管的领域,什么做法是合适的,取决于这条链路承载什么、由谁运营、你的业务是什么。这是一个应该在动工之前交给本地法律顾问和你的云厂商合规团队的问题,而不是事后补票——本文的任何内容都不能替代那份意见。
于是团队开始手工搭建。而手工搭建正是错误的来源,因为WireGuard最重要的那个字段也是最不显眼的那个:AllowedIPs 同时是路由表和加密层面的访问控制列表。一个方向写错,流量凭空消失;另一个方向写错,某个节点能够到达的范围远超你的本意。
Claude在这里到底做什么,又做不了什么
怎样生成一套不出手抄错误、彼此一致的peer配置?
四个节点的全互联网状结构,每个节点需要三个peer段——总共十二段,每一段都带着一个44字符的base64公钥、一个地址段和一个endpoint。手打十二段这种东西,恰恰是人类会悄无声息地做错的活。
把拓扑作为一份规格交给Claude:节点名、地域、公网IP地址、监听端口、你选定的隧道网段,以及每个节点的公钥。它会返回完整的配置集合,在构造上就是一致的,并附上验证矩阵——哪个peer应该在哪个地址、沿哪个方向到达哪个peer。
它同样会抓出那些在单个文件里看不见、放在一起看却很明显的结构性错误:两个peer的 AllowedIPs 相互重叠,导致流量悄悄走了先匹配上的那条;隧道网段与既有的VPC网段或办公室内网撞车;唯一那个在NAT后面的节点漏掉了 PersistentKeepalive;某个endpoint指向了对端根本路由不到的私网地址。
有一条边界比其他所有条都重要:私钥绝不进模型。 在将要使用它的那台机器上生成密钥对,把私钥留在那台机器上,只把公钥交给Claude。公钥本来就是设计来公开的。而一个被粘进任何聊天窗口的私钥——无论是哪家厂商——都已经离开了你的掌控,那一刻诚实的补救办法是重新生成它。
为什么拓扑、编址方案和信任边界仍然要你自己定
你怎么描述,模型就会照着产出一份能跑的配置——包括一份悄悄让每个节点都能到达每一个网段的描述。那几乎从来不是任何人的本意,而这也不是模型能抓到的错误,因为它无从得知你的意图。
拓扑是一个关于失效模式的决定。 全互联让每一对节点都有直连路径、没有单点故障,代价是更多的配置和更多的防火墙规则。星型结构更容易推理、也更便宜改,但中心节点一倒,全部跟着倒。请刻意地选。
编址方案是你的事。 选一个既不与你现在拥有的任何东西撞车、也不与你可能会有的东西撞车的隧道网段。这是一个五分钟的决定,而一旦服务把地址写死进去,扭转起来会很痛。
AllowedIPs 就是你的访问控制。 逐个peer地决定:香港节点是可以到达整个新加坡VPC,还是恰好一台主机上的一个端口。先写紧的那版,远比在六个服务已经依赖松的那版之后再收紧要容易。
两小时构建,逐步拆解
0:00–0:20 — 编址方案、拓扑决策、peer清单
为每个节点写下:一个短名字、所在地域和云厂商、它的公网地址(弹性或静态IP——动态分配的地址会在实例第一次重启时就把这张网撕开)、它将监听的UDP端口,以及它在隧道网段里持有的地址。决定全互联还是星型,并写下理由,因为理由才是未来某个工程师需要的东西。
0:20–0:50 — 生成密钥和逐peer的配置
在每个节点上本地生成密钥对,把私钥留在本地并设好严格的文件权限。把公钥收进你的清单,把这份清单交给Claude,要它给出完整的配置集合,外加由此推导出的可达性矩阵。在把任何东西写进服务器之前,先拿它对照你的清单读一遍——这一步复核正是让后面变快的原因,跳过它会把一个两小时的构建变成一个两小时的排障。
0:50–1:20 — 各地域的云安全组与防火墙规则
每个节点都需要在其监听端口上放行入方向UDP,而来源应该是它各个peer的具体公网地址,而不是 0.0.0.0/0。这是一件按厂商、按地域重复的杂活:阿里云和AWS之间、账号和账号之间,控制台布局、规则模型和默认出方向行为都不一样。请把整整半小时预留出来;这一步最常超时。
1:20–1:50 — 拉起链路并双向验证每一条路径
在每个节点上把接口拉起来,确认握手完成——WireGuard的状态输出会显示每个peer最近一次握手的时间,而一个从不握手的peer是防火墙或endpoint的问题,不是密钥的问题。然后测试每一个有向对:四个节点意味着十二个方向,而只测六个、心想"反正是双向的",正是一条不对称规则活到生产环境的方式。
不要停在ping上。在每条路径上真正传几兆字节的数据——一条MTU设错的隧道,小包完美通过、稍大一点就卡住。
1:50–2:00 — 固化配置、写文档、交接
把接口设成开机自启的服务,让它扛得住重启,然后把配置文件放到公司拥有的地方——一个配置仓库或密钥管理服务,而不是工程师的笔记本。记录下编址方案、谁持有哪一把私钥、开了哪些防火墙规则、为的是什么。这十分钟,就是"一项资产"和"一份负债"之间的差别。
WireGuard自建网 vs 托管SD-WAN vs 云原生互联
- 成本 — 自建WireGuard完胜。隧道本身免费;你付的出流量费本来就要付。
- 拿到第一条可用链路的时间 — WireGuard胜出,这也正是本文的论点。SD-WAN要走采购,云上互联要等开通窗口。
- 跨厂商、跨国家的覆盖 — WireGuard胜出。它不在乎另一端在谁家的云上,而这恰恰是它适配"深圳加新加坡"这类资产的原因。
- 故障处理与链路质量 — 托管SD-WAN明显胜出。路径选择、多链路间的故障切换、按应用调度,这些就是产品本身,而一张手工搭的网一样都没有。
- 运维负担 — 云原生互联胜出。没有东西需要打补丁、监控或轮换,这一点在第十二个月的价值比听上去大。
- 凌晨两点出事时的支持 — SD-WAN或云厂商胜出。对一张自建的网来说,支持合同就是当初搭它的那个人,而这才是这份对比真正在问的问题。
第三个月会坏在哪里
没人安排密钥轮换。 第一天生成的密钥还在原地,包括那位早已换了团队的工程师笔记本上的那几把。
MTU会迟到。 这张网好好跑了几周,然后一个新服务开始传更大的负载,只在其中一条路径上开始超时。
没有任何东西在盯着。 一条隧道断了,而你得知的方式是某个用户报告说报表是空的。握手状态、隧道可达性和规则漂移全都是可监控的,但在一张手工搭的网上,它们通常没被监控。
这些都不新奇。它们只是一张网在有人负责时会得到的那种平常维护,以及在没人负责时会得到的那种平常荒废。
把这件事做对:密钥保管、变更记录,以及何时该让IT介入
在这张网承载任何要紧的东西之前,有三件事值得先定下来。
第一,密钥保管。在WireGuard组网里,私钥*就是*访问控制——没有第二因素,也没有一个可以去吊销的中心权威。请决定:它们在哪里生成、存在哪里、谁能读、以及某人离职那天会发生什么。那个答案应该是一套流程,而不是某个人的记忆。我们的AI+支持服务帮你把这类工作建在公司账号和受治理的凭据上,而不是某个人的个人工具上;我们的托管IT支持则覆盖围绕它的身份与离职生命周期。
第二,一份变更记录。你开的每一条防火墙规则都有理由,而三个月后没人会记得。把理由写在规则旁边。这也正是日后审计不痛苦的原因,而在当时它不花任何成本。
第三,比构建活得更久的维护。一张网需要和任何其他网络设备一样不炫目的照料:配置备份、固件和软件包更新、健康检查,以及有人在看隧道是不是真的还活着。这恰恰是网络与硬件维护所覆盖的内容,包括VPN层面的监控和季度配置备份——也是"一张手工搭的网在第七个月会怎样"的诚实答案。Brocent自2007年在北京创立以来一直在亚洲提供托管IT服务,总部位于新加坡,并自2016年起设有香港办公室。
常见问题
自建的WireGuard网够不够跑生产?
对于少数几个节点之间的私密服务器互通,够——WireGuard是一个成熟且口碑良好的协议,大量生产流量跑在它上面。一张自建的网给不了你的是:路径冗余、自动故障切换,以及一个可以打电话的厂商。如果这条链路承载的东西一旦中断就会让业务停摆,那就要么刻意把这些能力补上,要么买一个自带这些能力的产品。
私钥由谁持有?有人离职时会怎样?
谁能读到每个节点上的那个文件,谁就持有它。没有中心化的吊销机制,所以移除某人的访问权意味着:轮换他能触及的那些节点上的密钥,并更新每一个信任过这些密钥的peer。请在需要它之前就把这件事计划好,并把密钥清单放在公司掌控的地方,而不是某个工程师的密码管理器里。
这和买SD-WAN有什么不同?
SD-WAN是一个托管产品,额外提供路径选择、多链路之间的故障切换、应用感知的调度、集中策略,以及一份支持合同。而WireGuard组网就是每一对节点之间一条加密隧道,别无其他。对三台需要私密路径的服务器来说,这个差别往往不值那个价钱。对一张承载语音和业务应用的多站点网络来说,它值。
涉及中国内地地域的peer,跨境合规上要考虑什么?
多到不该由一个工程师在动工过程中拍板。从中国内地地域实例出发的跨境连接属于受监管的领域,什么做法合适取决于这条链路承载什么、以及你的主体是怎么设立的。请在这张网上线之前,从本地法律顾问和你的云厂商那里拿到一个明确立场,并把那份决定的记录和配置放在一起。
Claude能看到我们的密钥吗?
只有你自己粘进去它才看得到——所以别粘。在将要使用它的节点上生成每一把私钥,只共享公钥,公钥本来就是拿来共享的。作为一般做法,请核对你所用那个具体产品层级的数据处理与训练条款,而不是靠假设,因为商业版和企业版通常与消费级不同,而且条款会变。
为什么SSH能用,但传文件会卡住?
那是MTU问题的典型特征。小包放得下、能过去;更大的包需要某种分片,而路径上有东西没有做,于是连接建立起来、然后就停住了。把隧道接口的MTU调低,直到大文件传输能稳定完成,是标准的处理办法;而在拉起链路时就真正传一次文件,正是你能赶在用户之前发现它的方式。
从哪里开始
先做最小的可用版本:两个节点、一条隧道、两侧都写紧的 AllowedIPs,以及一次真实的文件传输作为验收测试。在加第三个节点之前,先把这一条端到端跑通——一旦模式对了,这张网扩起来是干净的,而调试一张一次性搭起来的四节点网,会是另一个、也更糟的下午。如果你更希望把这张网连同网络的其余部分一起,妥善地建好、监控好、维护好,欢迎联系我们。
分享:
📬 亚太IT月报
中国合规动态、网络安全预警及亚太IT实践指南,每月一期。
不发垃圾邮件,随时可取消订阅。