你在家里,文档必须从办公室的打印机出来,VPN 是通的,可“添加打印机”窗口里什么也没有。这个“没有”并不能证明隧道坏了。发现是查找打印机的一种机制,而配置好的队列是另一种;走路由的 VPN 通常只承载后者,而把前者原封不动地留在原处。手动把队列加进去,打印机就不再“消失”了。

按顺序走一遍,遇到第一个失败步骤就停下来,而不是再叠加一套新的网络设计来弥补。

要问的是队列,而不是打印机的昵称

向管理办公室的人问清三件事:用户是直接打印到设备,还是经由服务器;队列支持哪种协议;需要配置的确切地址或 URI。像 Upstairs Colour 这样的名字能帮人找到机器,却对计算机什么也没说。把三个答案记下来,因为它们就是之后所有步骤的验收标准。

多数办公室只涉及两种安排。有些打印机自己接受 IPP,你就把设备直接配置在以标准打印路径结尾的 URI 上。另一些从打印服务器发布命名队列,再由服务器把任务交给它背后的硬件;这时你用的地址属于服务器,而不属于打印机。两个例子都只是示意,哪个都不要照抄:用真正给你的那个 URI。

手动添加队列

在运行 CUPS 的 Linux 客户端上,支持 IPP Everywhere 的设备可以用一条命令入队,这条命令添加本地打印机、指向设备 URI 并请求通用型号:lpadmin -p Office_Printer -E -v ipp://10.20.30.15/ipp/print -m everywhere。管理指南记录了目标、设备 URI 和型号选项,而这条命令只动本地队列。

那条命令不会创建路由,也不会在远端授予权限,所以才需要后面两节。在其他客户端上,用系统支持的界面;对于受管理的 Windows 打印服务器,用别人给你的服务器名和共享名,而不是自己编一条 IPP 路径。

检查名称解析、路由和回程路径

确认队列的主机名解析到预期的办公室地址,再确认笔记本把该地址经由隧道转发。打印服务器和物理打印机往往地址不同、权限也不同,所以能连上其中一个,并不能说明另一个也行。

办公室一侧需要一条回到你客户端真实源地址的回程路径,访问策略也必须放行你选定的打印服务。两半必须同时成立;缺了回程路径,任务会离开笔记本,然后哪儿也到不了。

把可达性和队列策略分开

共享策略是下一道边界,它和可达性不是同一个问题。只对自己子网共享的 CUPS 服务器,会在日志里客气地拒绝来自另一个 VPN 地址池的客户端,而客户端界面只显示一句笼统的话。运维应当只放行确实需要打印的特定远程用户和来源。为了一台打印机而把队列向所有网络开放,代价远大于这件事本身,下次评审时没人会为此感谢你。

发现又是另一个话题。多播 DNS 的作用域限于本地链路,所以走路由的 VPN 不会把你办公室看到的那份列表重新填满。配置好的队列不依赖那份列表;如果确实需要自动发现,那要单独设计,而不是为一台打印机重建一个桥接 VPN。

先发一个小任务,再读结果

把一页简短、不敏感的内容发到目标队列,然后看看队列对它做了什么。任务可能被接受、因认证被挂起、在设备上等待释放,或在投递前被中止;这四种结果指向不同的责任人。

笔记本上消失的进度条,并不等于纸已经动了。办公室里可能还得有人释放或取走这份任务;如果文档重要,就去问人,而不是盯着转圈的图标。

相关文章