Windows 的传入 VPN 与 OpenVPN 主机:五分钟内做出选择
Windows 自带的侦听器足够用于两台机器之间的测试。在为真实用户做选择之前,请把它与路由器端点和 OpenVPN 主机比较一下。
Windows 无需安装操作系统以外的任何东西就能接受 VPN 连接,当你拥有的两台机器需要一个下午的隧道时,这确实很有帮助。它能派上用场的时间大致也就这么长。内置侦听器有固定的协议菜单,没有按客户端划分的策略,还依赖一个可能被人关掉的桌面。在它、路由器端点和 OpenVPN 主机之间做选择,取决于三个条件,而不是偏好。
内置侦听器究竟是什么
传入连接向导把一台工作站变成一个小型远程访问端点。你选择哪些本地账户可以拨入、地址如何分配,以及启用哪种协议:PPTP,以及在版本和证书工作支持的情况下使用 L2TP/IPsec 或 SSTP。
它不是策略层。没有按用户分配路由,没有服务器强制实施的分离隧道,也没有把隧道与工作站自身网络身份分开。连接进来的客户端会落在与工作站相同的网段上,受该网段防火墙规则的约束。
最后这一点才是需要权衡的。工作站自己的端口、共享和浏览器现在对任何持有该账户的人都可以访问,而这个账户是一个本地 Windows 账户,连带它已经能做的一切。
决定取舍的三个条件
问一问访问需要持续多久、有多少人需要它,以及网络是否根本传得了这个协议。
如果答案是一台机器、一个人,以及在你能控制路由器的网络上几个小时,那么内置侦听器是相称的。如果访问必须挺过重启、持续一个月,要为五位同事提供各自独立的凭据,或者要从无法接收传入连接的移动网络接入,那它就不合适。如果协议要求的是 IP 协议 47 而不是端口,那么无论 Windows 支持什么,网络都可能拒绝传送。
这三个答案一次就能排除大部分争论。剩下的都是实现细节。
路由器端点胜出的场合
在路由器上终结的隧道是长期访问的自然选择。路由器本来就一直开着,它能承载到另一个办公室的点对点隧道,而且如果路由器提供他们使用的协议,客户端什么都不用装。
限制在于固件。消费级路由器往往只支持规范允许的一部分,而一款宣称支持 VPN 的型号,未必包含你计划中的那种协议。要看已安装固件的功能列表,而不是产品系列的。
OpenVPN 主机胜出的场合
在一台始终开机的小机器上运行 OpenVPN 服务器,适合混合客户端、多位拥有独立凭据的用户,以及只有单一对外端口决定能否工作的网络。它为每个客户端签发配置文件,在各大平台上都能运行,从客户端一侧看就像普通的对外应用。
它也需要一个负责人。总得有人续期证书、应用主机更新,并在客户端连不上时查看日志。没有这个人,自建端点就会悄悄衰退,直到真正需要它的那天。
在承诺访问之前先检查路径
Windows 侦听器失败最常见的原因不是身份验证,而是路径:PPTP 需要传入的 TCP 1723 和 GRE,而 GRE 是协议 47,不是端口,许多路由器只转发端口。有些接入网络根本不允许传入连接。仅此一点,就比任何 Windows 设置都更能排除内置侦听器。
在配置账户之前先测试路径,这样失败时只有一个可疑对象,而不是三个:
Test-NetConnection -ComputerName 203.0.113.45 -Port 1723
Get-NetAdapterBinding | Where-Object ComponentID -like ms_pptp
ss -lunp | grep 1194第一行显示端口关闭,是转发或运营商的问题,不是 Windows 的问题。第三行是选择 OpenVPN 之后要做的检查,那里一个处于监听状态的 UDP 端口就替代了整个协议问题。
无论选哪种方案,都不要把 PPTP 长期暴露在互联网上;它的身份验证和加密都已过时。如果真正的需求只是一个 Web 应用,反向代理是比任何 VPN 都更小的答案。