如何设置重用现有会话的 xrdp 会话?

如何设置重用现有会话的 xrdp 会话?

我一直在尝试使用 xrdp 在 precise 上设置 RDP 终端服务器,但在获取工作配置时遇到了很大麻烦。当用户登录时,我需要它连接到该用户的现有会话(如果存在),否则启动一个新会话,并且任何已启动的会话都必须启动 LXDE。为了使其正常工作,我需要对默认配置进行哪些更改?

答案1

我也遇到了同样的问题,我刚刚找到了一个简单的解决方案。我最初只是使用标准程序安装了 xrdp:

apt-get install xrdp

此后,一切都与您的 xrdp.ini 文件有关,该文件位于此处:

/etc/xrdp/xrdp.ini

要打开和编辑 xrdp 的配置文件,请使用:

sudo nano /etc/xrdp/xrdp.ini

默认情况下,第一个 xrdp 会话处理脚本如下所示:

[xrdp1]
name=sesman-vnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1

重要的一行是port=-1,这会让 xrdp 始终寻找一个空闲端口进行连接。如果您在此处设置固定端口,xrdp 将始终返回并连接到同一会话。我将其更改为如下所示:

[xrdp1]
name=customsessionname
lib=libvnc.so
username=myusername
password=ask
ip=127.0.0.1
port=5912

port=-1就是这样,我认为您只需将 更改为即可port=5912。我的 xrdp 始终使用同一端口重新连接到现有会话。

答案2

我想改进现有的答案。得票最高的答案是编辑文件,xrdp.ini将端口更改为固定值,代替通配符-1来查找开放端口。

我试过了,但第一次连接时出现错误,所以最后还是切换回了该-1值。但很快我就感到沮丧,因为无法恢复的问题仍然存在,所以我再次查看了 ini 文件。

对我有用的并且我真的很好奇的是:

编辑/etc/xrdp/xrdp.ini

我注意到用户名和密码设置为 ASK。如果您设置了,[xrdp1]您将在登录提示符下获得使用用户名和密码选择端口的选项。port=-1port=ask

我发现最简单的解决方法是设置 ask 选项,在使用用户名和密码登录时在端口 -1 上连接第一个会话(如果我还没有运行会话的话)。
断开会话后,要恢复现有会话,请始终登录默认端口:5910,您将恢复现有会话,直到重新启动远程计算机或在注销时结束会话。

总结一下:

  • 编辑xrdp.ini文件
  • port = ask
  • 从远程计算机连接,并在登录时如果没有现有会话,请指定端口-1
  • 要恢复会话,请输入默认的5910

答案3

问题是 xrdp 并不总是连接到同一个端口。如果没有,而你忘记了端口号,你可以登录 ssh 会话并通过以下方式找到端口号:

netstat -tulpn | grep vnc

你将得到类似下面的结果

tcp        0      0 127.0.0.1:5911          0.0.0.0:*               LISTEN      5365/Xvnc

然后您就知道 5911 是您连接的端口。

答案4

如果你遇到了“密码失败”的问题,你可以看看 GitHub 中的两个问题

重新连接到旧的 VNC 会话-VNC 密码失败

选择现有会话时 VNC 密码失败

简而言之,他们提到在最新设计中指定端口号不再起作用。

相关内容