我在从 Win 7 客户端通过 RDP 连接到 OpenVPN 服务器另一端的 Win 7 机器时遇到了问题。从我的 Win 7 客户端连接到 XP 机器时运行良好。
目标机器不需要网络级身份验证(即它们被设置为“不太安全”的设置)。我已经删除了 RDP 的所有无关功能(打印机、闪存驱动器、声音、颜色深度……尽可能低)
我建立了从家到公司的 OpenVPN 连接,然后尝试通过 RDP 连接到一台机器,比如 PC2312332.example.com,但它挂在configuring remote session
。我还可以从我的客户端计算机命令行 ping PC2312332.example.com,并且任何站点的 NSlookup 都显示我的 DNS 正在使用我工作的内部 DNS 服务器,这是应该的。
现在,真正的问题是:它很少会完成连接并允许您进入。有时,在配置后最多需要五分钟。然后它就可以正常工作了。通常,如果您让计算机进入睡眠状态(并且 VPN 连接需要重新建立),它甚至允许您重新连接。有人能帮我让它稳定地工作吗?
我确实看到了Windows 8 中通过 OpenVPN 使用 RDP,但它似乎正在处理目标不允许在 OpenVPN 接口中进行连接的问题。无论如何,我已关闭源计算机和目标计算机上的防火墙以进行故障排除。
校外:
- Win7 客户端 -> 校园内的 Win7 = 挂起于
configuring remote session
- Win7 客户端 -> 校园 XP = 连接非常快,性能良好
在校园:
- Win7 客户端 -> 校园版 Win7 = 连接速度非常快,性能良好
- Win7 客户端 -> 校园 XP = 连接非常快,性能良好
答案1
答案2
当我使用 OpenVPN 从外部访问我的 win 7 / win xp 机器时,我在“校外”也观察到了与上述相同的情况,即 win xp 可以工作,win 7 不行。我尝试使用 WireShark 进行跟踪,但没有成功。但是,我的“解决方案”如下:远程操作时,首先启动一个反复 ping 目标的进程
视窗:
ping -t <target>
mstsc ...
Linux:
ping <target> &
rdesktop [your options] <target>
安卓:
ping <target> ( using any android shell app)
run aFreeRDP ( or any other app - I have tried a few with no probs )
总之,据我所知,使用ping
s 保持目标连接“活动”可避免连接“冻结”/超时或发生任何其他情况。奇怪的是,我无法验证这确实是问题所在,因为似乎没有记录任何内容(好吧,无论如何我找不到任何内容)。
我想学习“真正的”解决方案,但与此同时,从本地计算机上的另一个进程 ping 远程主机对我来说就足够了。
答案3
对 Jens 来说:——这只是一个想法,但是......
通常系统管理员会设置一些防火墙 acl 来允许连接到 IT 基础设施内的 RDP 目标计算机,并且... iptables 规则可能看起来像这样:
-A VPN_%USER%_CHAIN% -d %RDP_TARGET_IP%/32 -p tcp -m tcp --dport 3389 -j ACCEPT
... - 因为 RDP 通常使用 TCP。但我听说在较新的 Windows 系统上,它会在会话创建后切换到 UDP。
现在,由于 Jens 在启动 RDP 连接之前使用永久 ICMP ping,并且 ICMP 是基于 UDP 的,因此 RDP 可能会重新使用 TCP,因为网络接口的 UDP 连接几乎通过 ICMP ping 得到使用,因此防火墙规则认为适合让 TCP 连接通过。
因此,至少使用 ping 或许是一个好主意,或者...要求管理员添加 UDP iptables 规则,例如:
-A VPN_%USER%_CHAIN% -d %RDP_TARGET_IP%/32 -p udp -m udp --dport 3389 -j ACCEPT
在 openVPN 服务器上也是如此吗?