我有一个 RDP 用户,他在家时成功地使用 RDP 从他的笔记本电脑连接到我们办公室的工作站。它配置为使用我们的公共 IP 和端口 10378,一直运行良好,直到大约 2 周前它突然停止工作。
- 我已经从许多其他外部 IP 检查了这个 RDP 配置文件 (IP:PORT) 配置,它们都可以正常连接
- 我办公室里还有另外两个 RDP 用户,他们的配置类似,但端口不同,当他在家时,这两个用户都无法在他的笔记本电脑上使用,但他们可以在我测试的任何其他外部电脑上使用
- 在他的笔记本电脑上,我尝试使用标准 3389 通过 RDP 连接到另一个公网 IP 地址上的另一台服务器,并使用 TCP 4321 连接到另一个不同的公网 IP 地址。这两个服务器都连接正常
- 我无法通过他妻子的笔记本电脑和同一个家庭互联网连接连接到他的 RDP 配置或其他两个
- 将笔记本电脑带离家,连接到不同的互联网连接(甚至是家里的 iPhone 个人热点),RDP 配置就可以正常工作
我检查了防火墙的策略,端口转发仍然和正常工作时一样。允许的外部 IP 仍然设置为“ANY”,台式电脑仍然在监听几个月前我配置的同一个 RDP 端口。
会不会是他家互联网连接的 ISP 阻止了发往某个特定 IP 地址的流量?还是阻止了某些特定的 TCP 端口?
我该如何测试并证明这一点?或者还有什么可能?
我试图在网络工程上询问这个问题,但因偏离主题而被回避,所以我来这里希望有人可以提供帮助......
答案1
老话题了,但我想警告未来的读者,将 RDP 直接呈现到互联网上 - 即使是在非标准端口上 - 也是一个非常糟糕的主意。
在用户的笔记本电脑与网络或工作场所中的特定机器之间建立安全 VPN,并通过该加密隧道运行 RDP 流量。这解决了 RDP 流量可能被 ISP 拦截的问题,并解决了 RDP 协议安全性中可能存在的弱点。
答案2
是的 - ISP 可以并且确实会阻止住宅宽带链路上的某些服务。用户家中的路由器/防火墙组合也可能阻止某些端口的连接。
以下是一些确认步骤-
消除家庭路由器:确认路由器配置没有进行某种类型的阻止(可能包括寻找非标准端口的应用程序识别机制等)。如果无法确定,那么您可以尝试将用户的计算机直接连接到互联网连接或使用备用(已知可正常工作的)防火墙。
如果直接连接仍然无法正常工作,则有必要使用嗅探器。安装 Wireshark 并在尝试启动连接时捕获所有流量。确认数据包符合预期,查找 TCP 握手,更重要的是,查找任何类型的 ICMP 不可达消息(端口被管理禁止等)。如果您看到 ICMP 返回,请注意它是来自运营商内部还是来自远端(即企业边缘路由器或防火墙)。
在公司端设置另一个嗅探器来确认数据包是否成功也可能有帮助。例如,如果您看到 TCP SYN 数据包进来但没有返回,那么您就需要找出原因。如果您看到 SYN 从用户端进来并且 ACK 返回,但该 ACK 没有出现在用户端,则表明其他东西可能被阻止(..这不太可能)。