我偶尔需要通过 RDP 远程访问云托管的 Windows Server VM,但在某些情况下会遇到问题。
是的,使用私人 VPN 连接到服务器更好,但我的问题是了解为什么直接 RDP 在某些情况下不起作用。
我暂时允许通过托管云防火墙从我当前的公共 IPv4 地址访问自定义端口(~53000),并且 VM 配置为在该端口上接受 RDP。此 RDP 设置在多数情况下都能正常工作。
然而,在以下情况下我可能会遇到麻烦:
- 在企业访客网络上
- 在强制门户(?)酒店 WiFi 上
- 在客户端电脑上使用知名 VPN
这些通常会给我一个 10. 或 172. 不可路由地址,并带有 NAT 来访问互联网。(是的,我确实为我的公共 IP 打开了端口,而不是不可路由的 LAN 地址。)但是,带有 NAT 的受限移动连接通常可以正常工作,来自带有 NAT 的家庭 LAN 的连接也可以正常工作,因此 NAT 本身不是问题。
我psping.exe
按照说明进行测试,成功并简单地检查了连通性这里当RDP工作正常时,psping成功如下:
当 RDP 不起作用时,这就是 psping 失败(注意那些 0.0.0.0):
我的问题:
我了解,出于安全考虑,端口 3389 可能会被 3 种访问类型(公司/酒店/VPN)的策略阻止。通过自定义端口的 RDP 是否通常会因类似原因而被启发式识别并阻止?(我意识到我的 ping 问题表明它是一个更普遍的问题,而不仅仅是 RDP,但我的问题仍然存在。)
看来我的问题可能是由 NAT 处的流量阻塞引起的,但与所谓的 RDP 流量无关。这些 0.0.0.0 是否提供了 ping 和 RDP 失败的原因?或者它们仅仅是失败的结果?
对于我的情况,使用通用 VPN 客户端是否合适?(例如 ExpressVPN、NordVPN 等)我的 VPN 支持给出了一个简单的“这不是一个经过测试的案例”,这很模糊且不能令人满意,也许是另一种说“不”的方式。
任何能够补充我的知识的帮助我都会非常感激。
答案1
我理解,出于安全考虑,端口 3389 可能会被 3 种访问类型(公司/酒店/VPN)的策略阻止。自定义端口上的 RDP 是否通常会被启发式识别并因类似原因被阻止?(我意识到我的 ping 问题表明这是一个更普遍的问题,而不仅仅是 RDP,但我的问题仍然存在。)
它很少被堵塞,但它可能被阻止以防止从受感染的客户笔记本电脑攻击未修补的 RDP 服务器的蠕虫传播(类似于 SMB、MS-RPC、MS-SQL 端口经常被阻止的原因)。
至于自定义端口,我还没有听说过使用 DPI 的情况(尽管这是可能的)——酒店更有可能屏蔽全部的短暂的端口范围,因为它很少有标准用途(我们的访客 Wi-Fi 和学生 VPN 服务之所以这样做是因为人们忘记了他们的 BitTorrent 客户端仍在后台运行)。
这些 0.0.0.0 是否能提供 ping 和 RDP 失败的原因?还是它们只是失败的结果?
它们很可能是失败的结果。当 psping 成功建立 TCP 连接时,它可以调用 getsockname()(或 Winsock2 等效函数)来检索操作系统自动为其选择的本地地址:端口,但当连接不成功时,这些值可能不一定会被填写。
使用更多工具进行测试以确保无误,例如Test-Connection -TcpPort
或任何其他基本 TCP 客户端。尝试使用 Wireshark 检查哪些数据包实际上通过 VPN 接口发出。
对于我的情况,使用通用 VPN 客户端是否合适?(例如 ExpressVPN、NordVPN 等)我的 VPN 支持人员给出了一个简单的“这不是一个经过测试的案例”的回答,这很模糊,也不令人满意,也许是另一种说“不”的方式。
默认情况下是的(假设您已允许 VPN 提供的公共 IP 地址,而不是连接前看到的 IP 地址)。但是,公共地址不一定在整个 VPN 会话期间保持不变——许多“注重隐私”的 VPN 提供商会故意地将每个连接从其公共地址池中 NAT 到不同的 IP,除非你明确要求静态 IP 地址作为附加服务。
所以我的猜测是,您的 RDP 连接不再与您设置的防火墙规则匹配,要么是因为外部 NAT 地址在一段时间后发生了变化,要么是因为不同的目标 IP 使用了不同的 NAT 地址。
(我不会称它们为“通用 VPN 客户端”,恰恰相反——它们有专门用于连接该客户端的特定目的一VPN 服务,并且构建为使用该服务的协议和 API。)