笔记本已连上 VPN,手机也在同一个 Wi-Fi 里,可手机仍然用 ISP 地址浏览。这不是客户端的问题:隧道只存在于终止它的那台机器上,别的设备不会因为挨得近就继承它。只有路由器自己跑客户端,或者把某台机器刻意做成 LAN 的网关,覆盖范围才会扩大。选哪种模式由三件事决定:你的服务商实际支持什么协议、各设备需要多大差异、以及晚上九点你能接受哪种故障。

路由器隧道究竟覆盖什么

隧道在路由器上终止时,所有经它转发的设备共用一个出口。对电视、游戏机或永远不会跑客户端的小家电来说,这就是吸引力:不用安装、不用维护,换服务商也只有一处。

覆盖范围是有条件的,而且常让人意外。访客网络或另建策略的第二个 SSID 会走那条策略规定的路径,而不是隧道。IPv6 的路径可能绕过只承载 IPv4 的隧道。自带 VPN 应用或自带加密解析器的设备会完全无视路由器。而路由器自身的流量(包括更新和 DNS)遵循它的出站策略,与 LAN 的转发流量是两条不同的路径。

两种模式下的核查方式相同,一分钟就够:问两台设备世界看到的是哪个地址,再看路由器的连接列表里有没有隧道。如果手机报的是 ISP 地址,而路由器显示隧道已建立,那手机就没走隧道,重连多少次都不会改变。

每台设备单独装客户端胜在哪里

一旦需求出现分化,每台设备单独装客户端就占优。工作笔记本可能需要手机不该加入的公司隧道;服务商的客户端可能提供按应用分流的分流隧道,这是路由器表达不了的;游戏机可能必须留在外面才能保住 NAT 类型。每台设备也是各自故障,所以一份过期的订阅不会让整座房子一起沉默。

凭据是更锋利的论据。替所有人连接的路由器只持有一个账号,那个网络上的每个人都继承它的访问权。如果目的是在上网之前对每个人单独认证,单靠路由器隧道做不到。常见设计是强制门户:先校验账号,再把客户端放进已经建立的隧道,这比大多数家庭想要的部件更多。

协议支持比偏好决定更多情况

消费级路由器只暴露厂商出厂时带的协议。只有 PPTP、L2TP 或普通 IPsec 的路由器,连不上只发布 OpenVPN 或 WireGuard 配置的服务商,再怎么配置也改不了。诚实的选择是:换一个支持所需协议的服务商、换一台跑 OpenWrt 等固件并带所需客户端的路由器,或者每台设备各装客户端。

反过来同样常见:支持 OpenVPN 的路由器用不了那种依赖自家客户端和自家路由技巧的服务商。买硬件之前先读服务商的支持协议页面,再确认固件版本,因为产品页上的「支持 WireGuard」往往指某一个特定固件世代。

带 WireGuard 客户端的旅行路由器是路由器模式的廉价版,对几台跑不了客户端的设备来说是合理答案。它仍是路由器隧道,所以上面关于访客网络、IPv6 和共同故障的结论原样适用。

第三种选择:把一台机器当网关

从笔记本共享客户端是可行的,人们说「把笔记本变成路由器」时通常指的就是这个。

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

它能一直工作到机器休眠、客户端重连到另一个配置,或机器自身的防火墙丢弃转发的数据包。那时它后面的一切会同时断网,故障看起来像网络死了,而不是 VPN 的问题。

做实验或临时搭建没问题。作为长期方案,它让一台笔记本成为整个家庭的单点故障,结局通常是有人纳闷为什么合上盖子电视就不工作了。

入站端口、DNS 以及你们共同承担的故障

入站服务会随隧道一起变化。路由器上的 VPN 通常会破坏 LAN 服务器的端口转发;如果服务要经隧道访问,动态 DNS 名就得指向 VPN 出口而不是 ISP 地址。有些服务商根本不提供可路由的入站地址,任何依赖它的方案都会悄悄作废。

路由器持有隧道时 DNS 跟着路由器走,这很方便,直到某台设备需要另一个解析器。每台设备单独装客户端能表达这一点;路由器策略表达不了,除非把网络劈成两半。故障也是共享的:一次崩溃、一份过期订阅或一条推错的路由,会在同一刻断开所有设备。

设备跑不了客户端、又能接受单一出口时,选路由器模式。策略不同、服务商需要路由器没有的协议、或者账号不能共享时,选每台设备单独装客户端。若机器就是网关,写下哪个接口共享哪个网络,并测试「隧道断开」的情形,因为大多数这类设计正是在那个状态下暴露出错误。

相关文章