一直尝试研究这个问题但尚无结果!
也许有人可以帮忙。
我正在尝试确定 TS 上的本地主机是否以与直接服务器相同的方式工作。如果我在每个 TS 会话中启动一个应用程序,该应用程序会监听某个端口,它会失败吗?还是会将每个 RDP 会话视为单独的本地主机实例?端口是否会在多个会话中绑定失败,还是会将每个 RDP 会话视为隔离环境?
谢谢
答案1
服务或应用程序侦听器只能绑定到主机地址和端口的一个唯一组合。
如果给定的程序实例绑定到主机上的特定 IP 地址和特定端口来监听传入的连接,则尝试绑定到相同组合的第二个实例将会失败。
正如您想到的,您可以通过实现一个连接代理来解决这个问题,该代理拦截给定端口上的传入连接,并使用一种机制或其他机制(代理?重定向?)将这些连接传递给正确的唯一应用程序侦听器。
这假设每个终端会话用户都有权调用自定义侦听器。启用该功能对于系统管理员来说非常不寻常。
答案2
其实有一个功能叫虚拟环回在 XenApp/XenDesktop 中。但至少需要 Windows Server 2008R2。
这就是我所知道的全部了。
Citrix 的工作原理如下:
启用 Citrix 虚拟 IP 环回策略设置允许每个会话拥有自己的环回地址进行通信。
当应用程序在 Winsock 调用中使用本地主机地址(默认值 = 127.0.0.1)时,虚拟环回功能会简单地将 127.0.0.1 替换为 127.XXX,其中 XXX 表示会话 ID + 1。
例如,会话 ID 7 为 127.0.0.8。如果会话 ID 超出第四个八位字节(超过 255),则地址将转到下一个八位字节(127.0.1.0),最大为 127.255.255.255。