RDP:通过远程桌面网关服务器连接时,远程应用程序不封装流量

RDP:通过远程桌面网关服务器连接时,远程应用程序不封装流量

我有一个远程桌面应用程序,是由第三方公司向我的一位客户发布的。远程桌面应用程序连接到远程桌面网关服务器 (RDGW),后者将请求转发到远程桌面服务器群,其中使用最少的服务器响应请求并打开应用程序。这在大多数情况下都运行良好。

今天我遇到了一种情况(假设该应用程序是为新客户发布的),其中 RemoteApp 会要求用户输入其凭据(域\用户名和密码),在对用户进行身份验证并接受 RDS 场的证书后,mstsc.exe 将停止工作,对取消或关闭按钮完全没有反应,必须通过任务管理器终止。

在解决此问题时,我发现 RemoteApp 与 RemoteDesktop 网关服务器的连接方式有所不同。在我所有的积极测试场景中,我的 MSTSC 和远程桌面服务器网关之间的流量完全封装在 HTTPS 中,如下所示:MS Netmon 中远程应用程序连接成功

在其中一个发生故障的 mstsc 上记录完全相同过程的流量,得到了以下结果: MS Netmon 中的远程应用程序连接失败

第一个对话(在 NetMon 中称为)是与 RemoteDesktop Gateway 服务器(HTTPS,端口 443)的 HTTPS 连接,然后是单独的 RDP 连接,尝试通过其私有 IP 地址连接到 RD 服务器本身(出于隐私和安全原因,我在图片中将其隐藏)。第二个连接最终失败,因为 RD 服务器不在同一位置/子网中,因此 mstsc 无法访问私有地址。

起初我怀疑是客户端防火墙的问题,因为它会检查 HTTPS 流量,替换证书,因此可能会破坏与 RDGW 服务器的成功 HTTPS 连接。禁用防火墙上的所有 webfilter 功能后,问题仍然存在。我还尝试通过 OpenVPN 隧道路由流量,以便完全绕过防火墙,但遗憾的是也没有成功。

什么可以强制 mstsc 不将 rdp 连接封装在 HTTPS 流量中,就像在成功连接中一样?这是一种后备策略还是只是一个简单的错误?什么可以用作远程应用程序的高级故障排除,因为它没有有价值的日志文件,并且 RDS 和 RDGW 服务器不在我的控制范围内?

编辑(添加匿名配置文件):

redirectclipboard:i:1
redirectprinters:i:1
redirectcomports:i:0
redirectsmartcards:i:1
devicestoredirect:s:*
drivestoredirect:s:*
redirectdrives:i:1
session bpp:i:32
prompt for credentials on client:i:1
span monitors:i:1
use multimon:i:1
remoteapplicationmode:i:1
server port:i:3389
allow font smoothing:i:1
promptcredentialonce:i:0
videoplaybackmode:i:1
audiocapturemode:i:1
gatewayusagemethod:i:2
gatewayprofileusagemethod:i:1
gatewaycredentialssource:i:0
full address:s:INTERNAL-FQDN-SERVER-HOSTNAME.CUSTOMER.NET <!! EDITED FOR ANONYMIZE REASON
alternate shell:s:||name_of_remote_app_on_wts <!! EDITED FOR ANONYMIZE REASON
remoteapplicationprogram:s:||name_of_remote_app_on_wts <!! EDITED FOR ANONYMIZE REASON
remoteapplicationname:s:name_of_remote_app_on_wts <!! EDITED FOR ANONYMIZE REASON
remoteapplicationcmdline:s:
workspace id:s:INTERNAL-FQDN-SERVER-HOSTNAME.CUSTOMER.NET <!! EDITED FOR ANONYMIZE REASON
use redirection server name:i:1
loadbalanceinfo:s:tsv://MS Terminal Services Plugin.1.RemoteApp-EXT
alternate full address:s:INTERNAL-FQDN-SERVER-HOSTNAME.CUSTOMER.NET <!! EDITED FOR ANONYMIZE REASON
authentication level:i:2
prompt for credentials:i:0
negotiate security layer:i:1
gatewayhostname:s:external.gateway.ourcustomer.com <!! EDITED FOR ANONYMIZE REASON
signscope:s:Full Address,Alternate Full Address,Use Redirection Server Name,Server Port,GatewayUsageMethod,GatewayProfileUsageMethod,GatewayCredentialsSource,PromptCredentialOnce,Alternate Shell,RemoteApplicationProgram,RemoteApplicationMode,RemoteApplicationName,RemoteApplicationCmdLine,RedirectDrives,RedirectPrinters,RedirectCOMPorts,RedirectSmartCards,RedirectClipboard,DevicesToRedirect,DrivesToRedirect,LoadBalanceInfo
screen mode id:i:2
winposstr:s:0,3,0,0,800,600
compression:i:1
keyboardhook:i:2
connection type:i:7
networkautodetect:i:1
bandwidthautodetect:i:1
displayconnectionbar:i:1
enableworkspacereconnect:i:0
disable wallpaper:i:0
allow desktop composition:i:0
disable full window drag:i:1
disable menu anims:i:1
disable themes:i:0
disable cursor setting:i:0
bitmapcachepersistenable:i:1
audiomode:i:0
redirectposdevices:i:0
autoreconnection enabled:i:1
remoteapplicationicon:s:
shell working directory:s:
gatewaybrokeringtype:i:0
rdgiskdcproxy:i:0
kdcproxyname:s:

答案1

那个设定:

gatewayusagemethod:i:2 

可能不适合这项服务。

这对应于“绕过本地地址的 RD 网关服务器”设置。

第三方公司不应交付启用该设置的 RDP 文件。

相关内容