终止开关拦住了你的打印机?先做三项检查
终止开关会故意拦截打印机流量。先做三项检查,判断为局域网设置范围受限的例外是否合理,并把它限制在一个地址上。
你的打印机一小时前还能用。随后你打开了 VPN,现在任务一直卡在队列里直到失败。罪魁祸首很可能不是打印机,而是终止开关:它会丢弃离开本机、通往隧道之外的流量,而局域网打印机正是这类流量。真正要决定的不是怎么修好打印,而是这台设备到底该不该访问局域网。三个条件就能定论,任何一个条件都可能提前结束讨论。
终止开关丢弃什么,以及为什么
终止开关是一条带失败模式的路由规则。隧道正常时,匹配的流量加密后发出;隧道断开时,客户端会把默认路由黑洞化,任何东西都不会以明文发出。同一子网内的打印机永远匹配不上隧道路由,因此即使流量根本没有离开大楼,也会被当成外泄企图处理。
设备发现机制让症状更让人困惑。打印机会通过 5353 端口的组播 DNS 自我广播,添加打印机对话框里的队列就是由这些广播构成的。拦截生效期间广播可能收不到,于是打印机从列表里消失,尽管它的地址仍然能响应。631 端口的 IPP、9100 端口的原始打印和 445 端口的 SMB 都是普通的局域网服务,本身完全没有隧道通路。
先证明打印机可达
在改动任何策略之前,先确认打印机状态正常,并确认你以为它拥有的那个地址。地址要从打印机面板或它自带的网页上读取。操作系统列表里的旧条目可能指向 DHCP 几周前分给另一台设备的地址。
断开 VPN,然后测试该地址和两个常见的打印端口:
nc -vz 192.168.1.50 9100
nc -vz 192.168.1.50 631在 Windows 上,等价命令是 Test-NetConnection 192.168.1.50 -Port 9100。重新连上 VPN 再测一遍。如果关掉 VPN 时端口响应、打开时超时,你就复现了拦截,剩下的就是策略问题。如果两种状态下都失败,请停下:问题出在打印机、Wi-Fi 网段或客户端隔离,VPN 例外只会增加暴露面。
决定放行还是拦截的三个条件
按顺序执行。第一个不满足的条件就能定结果,后面的不必再测。
| Condition | Allow a scoped exception | Keep the block |
|---|---|---|
| Who owns the network | Home or single-tenant office where you control the segment | Hotel, cafe or shared Wi-Fi where the printer is not yours |
| Who owns the device policy | Personal device with no enforced profile | Managed profile that enforces always-on VPN |
| What the device carries | Nothing another LAN peer must not reach | Client data that must not touch an untrusted segment |
访客网络是最明确的“不行”。在酒店网段里,本地范围就是其他所有客人,能到达你打印机的例外同样能到达他们的笔记本。不归你所有的打印机,不是打开那个网段的理由。
受管设备是第二个“不行”。当管理员配置文件强制启用带锁定的常开 VPN 时,客户端会在任何本地改动后重新施加拦截,绕过办法可能违反你已接受的策略。应当申请受支持的本地资源通道,而不是去改会被覆盖的设置。
你的客户端支持的最小例外
你要的是针对一个打印机地址的目标限定规则,而不是“允许本地”这种一刀切开关。一刀切开关往往会覆盖整个私有地址段和链路本地流量,远远超过一个打印队列的需要,还会把该网段上的每台设备都变成你已接受的同等设备。
Windows 提供拆分隧穿,某些版本还提供局域网选项。当唯一受支持的途径是主机路由条目时,可在隧道建立后通过物理网关添加单个地址,例如 route add 192.168.1.50 mask 255.255.255.255 192.168.1.1,会话结束后再删除。WireGuard 的机制不同:AllowedIPs 决定什么进入隧道,因此全隧道 0.0.0.0/0 配置会把打印任务带到对端,除非有更具体的路由绕开它;wg-quick 还可以安装拦截其余一切流量的防火墙规则。
在 Android 上,那个在无 VPN 时拦截连接的常开设置就是终止开关,位于该拦截之内的应用做打印机发现时没有局域网通路。逐应用和排除项的模型记录在 Android VPN 页面,改动任何东西之前应当先查那里:Android VPN 连接指南。近期的 macOS 版本会把局域网权限与隧道分开请求,iOS 对局域网访问也是如此,但隧道打开时队列仍然可能失败,因为厂商客户端把这个子网路由进了隧道。
无论你用哪个客户端,把例外限制在一个地址上以及打印机真正使用的两个或三个端口。要预留 DHCP 租约,而不是因为地址可能变化就把规则放宽到整个子网。
验证例外,并知道何时撤销
改动之后重新连接,按顺序检查三件事。打印机在其端口上响应,能打印一张无害的测试页,地址查询仍然返回 VPN 对端而不是你的运营商。如果打印能用但查询显示你的运营商,说明你打开的不止打印机,应当改回去。
重启之后,以及每次客户端或配置文件更新之后都重做一遍测试,因为更新恢复默认值的情况足够常见。只维持到下次连接的例外不叫决定,那是个临时漏洞。把确切规则写下来,才能有意识地删除它。
如果这台设备本应只走隧道,比如出差用的笔记本或存有客户数据的机器,正确的做法是保留拦截、换地方打印:存成 PDF,从手机或另一台机器打印,或者连到隧道能路由到的打印服务器。为了一次任务关掉终止开关,是用真实的防护换一点便利。