使用代理和远程桌面网关连接到远程桌面?

使用代理和远程桌面网关连接到远程桌面?

我已经使用 Windows Server 2012 R2 设置了远程桌面网关服务器。我使用远程桌面网关作为中介,通过 443 提供远程桌面会话,因为 3389 在许多客户端位置被阻止。

然而,我遇到了一个问题,客户端的网络似乎正在使用 Web 代理。

是否可以配置远程桌面以通过 Web 代理进行连接?如果可以,如何配置?如果不可以,有人能建议如何在无法控制客户端 PC 或网络的情况下通过 443 代理提供远程桌面会话吗?使用 RD 网关时,RemoteApps 是否允许通过 Web 代理进行访问?

错误信息如下:

您的计算机无法连接到远程计算机,因为 Web 代理服务器需要身份验证。若要允许未经身份验证的流量通过 Web 代理服务器到达 RD 网关服务器,请联系您的网络管理员。

谢谢你的帮助!

答案1

截至 2008 年一名微软员工表示“没有官方方法来实现这一点”考虑到过去六年的时间,您可能认为已经取得了进展,但我认为并没有。

如果我处于您的情况,我会尝试找到一个小型 Win32 HTTP/HTTPS 代理,该代理可以“指向”上游代理并配置为提供身份验证。我对这样的事情没有立即的建议。(我个人可能只是将一些东西与 Perl 或 Python 放在一起。)

答案2

另一个选择是使用 SSH 隧道。PuTTY 有一个易于配置的代理选项,因此它可以通过代理服务器工作,然后提供一个本地隧道,您可以通过该隧道连接到 RDP 目标。

这确实假设客户端可以通过 SSH 登录,更具体地说,可以与 RDP 服务器通信。

答案3

正如奥马哈的回答所建议的,另一个选择是 SSH 隧道。如果你在 Windows 机器上安装了 SSH [可能并不简单],那么你可以连接到该机器,为某个端口创建 SSH 隧道,然后将你的 rdp 客户端连接到该端口(putty 可以创建隧道,或者 ssh 可以创建类似https://stackoverflow.com/questions/19161960/connect-with-ssh-through-a-proxy, 前任:

ssh username@intermediary_box -o "ProxyCommand=nc -X connect -x proxy_host_name:80 %h %p" -L:3389:remote_rdp_box:3389然后将您的 rdp 客户端指向localhost正常位置,我已经通过 HTTP 代理使用这种方式工作)。

FreeRDP WebConnect 服务 可能是一个选项 [它似乎是一个 Web 服务器后端,用于与后面的 RDP 交互,带有 HTML5 客户端前端],然后您可以打开端口到您的盒子 [无论它在哪个盒子上服务],并希望使用 HTTP 访问它。假设 websockets 没有被阻止。 鳄梨看起来很相似(您在 RDP 服务器框上设置了服务和 Web 服务器,它提供了 HTML5 前端)。

除此之外,如果你有一个外部的第三个盒子(不在任何防火墙后面),里面有一个 SSH 服务器,你可以通过 SSH 创建通过该中间盒子的端口转发(同样的机制https://stackoverflow.com/questions/19161960/connect-with-ssh-through-a-proxy)。

对于较新的 RDP 客户端,您可能能够设置额外的 RDP“网关”,然后使用 HTTP 连接到该网关http://sengstar2005.hubpages.com/hub/How-to-Remote-Desktop-to-a-Terminal-Server-via-a-Web-Proxy

答案4

Guacamole 和 FreeRDP-WebConnect 是基于 Linux 的网关。对于 Windows 服务器(我看到您使用的是 Windows Server 2012 R2),您可以尝试默蒂尔,一个类似的解决方案(同样使用 FreeRDP 作为 rdp 客户端),也是开源的。

相关内容