给一台留在海外的路由器,修三条回家的路


人要回国了,一台巴掌大的 OpenWRT 路由器却要留在海外,插在学校的网口上,接下来大半年没人管。我想在回国之后还能随时摸到它——登后台、进 shell、甚至借它的网络出口去下点只对校园网开放的论文。

这篇记录我怎么给它修了三条互相独立的“回家的路”,以及为什么是三条而不是一条。

为什么是“多条独立的路”

单一方案都有单点故障:

  • 只靠某个网状 VPN?它的协调服务器要是被墙/宕了,整个网就废。
  • 只靠端口转发?学校网络根本不给你做,而且端口一开就是全网可见的攻击面。
  • 只靠一台中转服务器?服务器炸了就全断。

所以核心原则是:几条通道走完全不同的基础设施,让它们的失效原因彼此无关。 一条断了,另一条还在。这跟做高可用系统是一个思路。

第一条:Tailscale(主力)

Tailscale 是基于 WireGuard 的网状 VPN,所有设备登录同一账号就组成一张私有网,自动打洞、就近直连。装上、登录,路由器立刻有了一个固定的私网地址,从任何一台同账号设备都能 SSH、开网页后台。日常主力就是它。

它还有两个我特意打开的能力:

出口节点(Exit Node)。 打开后,我可以把自己所有流量从这台路由器“出去”——在论文库眼里,我就是坐在校园网里。等于自建了一个学校 VPN,人在国内也能下只对校内开放的文献。

子网路由——但我最后关掉了它。 一个值得记下的坑:我本想广播路由器的局域网段,这样回国后能直接摸到校内其他设备。但那个网段是烂大街的 192.168.1.0/24——国内家里的路由器、手机热点大概率也是这个段。一旦广播,客户端就分不清 192.168.1.x 到底是本地还是远程,路由冲突,两头都不通。广播常见网段是大忌,果断撤掉。真要做,得先把校内网段改成冷门段再广播。

第二条:Cloudflare Tunnel(备用,浏览器直达后台)

第二条完全不碰 Tailscale 的基础设施。Cloudflare Tunnel 的思路是由内向外打洞:

路由器上跑一个 cloudflared,主动向外连 Cloudflare 边缘节点,保持长连接。我访问自己的域名时,请求先到最近的 Cloudflare 节点,Cloudflare 顺着这条已经开好的隧道把请求下发给路由器,再转给本地的后台。

浏览器 ──► Cloudflare 边缘 ──(路由器主动建的隧道)──► cloudflared ──► 本地后台

好处很实在:

  • 不需要公网 IP、不需要端口转发,学校 NAT 后面照样能用;
  • 路由器从不接受入站连接,端口不暴露;
  • 对外走 TCP/443,和普通 HTTPS 长得一样,不容易被掐。

但域名一上线,登录页就对全网可见了。所以必须在前面加一层 Access——身份门卫。请求还没进隧道,Cloudflare 先拦下来问“你是谁”,只有我的邮箱能通过邮箱验证码进来。暴力破解、后台自身的漏洞,全被挡在最外层。这一层,是它比传统端口转发安全得多的关键。

第三条:裸 WireGuard 打到自己的 VPS(最独立的一条)

前两条各自依赖一家外部服务。第三条我要一条谁都不依赖、纯静态的路:路由器和我自己的一台 VPS 之间,直接拉一条 WireGuard 隧道。

  • VPS 有公网,当“集合点”,监听一个 UDP 端口;
  • 路由器主动拨出去连它,配上 PersistentKeepalive,断了自动重连、NAT 后面也没问题;
  • 两端配置都是静态的,不需要任何协调服务器。

这条的价值在于:就算哪天那些网状 VPN 的控制面全被墙、整张网瘫了,这条写死在两端的隧道照样通。它是最后的保底。

在共用的 VPS 上开服务,切记先看清已占用的端口再挑一个空的,别搅到上面已有的服务。

让它能撑住无人值守的大半年

能连上只是第一步,关键是没人管的时候别自己趴下:

  • 看门狗:一个每 5 分钟跑一次的小脚本,检查隧道的连接数、VPN 的状态,卡死了就自动重启对应服务。进程崩溃有系统托管重启,但“进程活着、连接却卡死”这种,就得靠它。
  • 强密码:默认密码第一时间换成长随机串。
  • 一切开机自启、配置落盘,断电重启后自动恢复。
  • **外部“死人开关”**才是真保命的:本机监控在盒子彻底死掉时是没法通知你的。让路由器定时向一个外部服务打卡,一旦不打卡就给我告警——这才能发现“整台离线”。

顺手加的观测

既然是长期在线的节点,就给它配了历史曲线:CPU/内存/负载、连接数、到几个目标的延迟和丢包、温度、存储占用。回国后线路质量好不好,一眼看曲线。

几条踩过的坑

  • 常见网段别用来做子网路由,必冲突(上面那条 192.168.1.0/24)。
  • NAND + UBIFS 的路由器做不了 swap 文件:这类文件系统会压缩零块、又没有稳定的物理块映射,swapon 直接失败。想缓解内存只能上压缩内存(zram),指望用板载 flash 做 swap 是行不通的。
  • 空着的存储不是浪费,是余量。一个要无人值守好几个月的设备,最大的风险是“东西装太多、某个服务哪天崩了没人救”。留白 = 稳。

小结

三条路——网状 VPN、边缘隧道、裸 WireGuard——走三套完全不同的基础设施,任何一条挂了都还有退路。再加上会自愈的看门狗和外部打卡,这台小盒子就能安心留在海外,替我守着那条回家的路。

(本文所有地址、密钥、域名均已脱敏。)