我偶尔需要通过 RDP 远程访问云托管的 Windows Server VM,但在某些情况下会遇到问题。
是的,到服务器的私有 VPN 更好,但我在这里的问题是了解为什么直接 RDP 在某些情况下不起作用。
我暂时允许通过托管云防火墙从我当前的公共 IPv4 地址访问自定义端口 (~53000),并且 VM 配置为在该端口上接受 RDP。此 RDP 设置在大多数情况下都能正常工作。
但是,在以下情况下我会遇到麻烦:
- 在公司访客网络上
- 在强制门户 (?) 酒店 WiFi 上
- 在我的客户端 PC 上使用知名 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 支持给出了一个简单的“这不是经过测试的案例”,它含糊不清且令人不满意,也许是另一种说“不”的方式。
非常感谢您在这里填写我的知识的任何帮助。
它不常见地被阻止,但它可能会被阻止以防止蠕虫传播从受感染的来宾笔记本电脑攻击未修补的 RDP 服务器(类似于为什么 SMB、MS-RPC、MS-SQL 端口经常被阻止)。
不过,至于自定义端口,我还没有听说过任何使用 DPI 的案例(尽管这是可能的)——酒店更有可能阻止整个临时端口范围,因为它几乎没有标准用途(我们的客人 Wi-Fi 和学生VPN 服务这样做是因为人们忘记了他们的 BitTorrent 客户端仍在后台运行)。
它们很可能是失败的结果。当 psping 成功建立 TCP 连接时,它可以调用 getsockname()(或 Winsock2 等效项)来检索操作系统自动为其选择的本地地址:端口,但是当连接不成功时,可能不一定会填充这些值在。
使用更多工具进行测试以确保,例如
Test-Connection -TcpPort
或任何其他基本 TCP 客户端。尝试使用 Wireshark 检查实际通过 VPN 接口发出的数据包。默认情况下是(假设您已允许 VPN 提供的公共 IP 地址,而不是您在连接之前看到的那个)。但是,公共地址不一定在整个 VPN 会话期间保持静态——许多“面向隐私”的 VPN 提供商会故意将每个连接从其公共地址池中 NAT 到不同的 IP,除非您特别请求静态 IP 地址作为附加服务。
所以我的猜测只是你的 RDP 连接不再匹配你设置的防火墙规则,要么是因为外部 NAT 地址在一段时间后发生了变化,要么是因为不同的 NAT 地址用于不同的目标 IP。
(我不会将这些称为“通用 VPN 客户端”,恰恰相反——它们的特定目的是连接到那个VPN服务,并且是为使用那个服务的协议和 API 而构建的。)