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

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

我有同样的问题,我刚刚找到了一个简单的解决方案。 我最初刚刚使用标准版本安装了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始终使用相同的端口重新连接到现有会话。

我想改进现有的答案。 最高投票的答案是编辑xrdp.ini文件,将端口更改为固定值,而不是-1通配符,以查找打开的端口。

我试过了,但第一次连接错误,所以最终切换回-1值。 虽然问题仍然没有恢复,但很快就陷入了挫折之中,所以我再次查看了ini文件。

什么对我有用,而且我真正感到好奇的是这个:

编辑/etc/xrdp/xrdp.ini

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

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

总结一下:

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

我不想成为那个刚刚删除链接的人,但是我在这里遵循指南并且它工作得非常好。 我现在可以从Linux和Windows主机登录到RDP会话,如果我以前登录过,请将我重新连接到旧会话。 这是我发现的安装的最佳指南。 不幸的是,标准软件包安装比从源代码安装引起的问题要多得多。

该链接的作者也制作了一个自动工具来安装和配置它,但我没有尝试过,所以要小心。

希望能帮到你。

问题是xrdp并不总是连接到同一个端口。 如果它没有,你忘记了端口号,你可以登录一个ssh会话,找出号码

 netstat -tulpn | grep vnc 

你会得到类似下面的东西

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

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

当您第一次连接到远程桌面时,在登录屏幕上使用xrdp框应该有一个下拉框,从这里选择“vnc-any”然后输入计算机的IP地址和密码,但是将端口保留在是的,这应该有帮助:)

我在Debian机器上遇到了这个问题。 使用X11RDP-o-Matic构建xrdp 0.7软件包。 在升级到systemd之前,xrdp会话重新连接工作正常。

查看进程树,我可以看到会话不再是xrdp-sesman 。 使用systemd时,结果是一个权限问题。 谷歌发现了一个修复问题的补丁 。

你如何识别工作重新连接? 运行ps axf并查看xrdp-sesman的进程树。 X11rdp, xrdp-chansrv, xrdp-sessvc都应该作为孩子运行。 如果不是, xrdp-sesman将不知道如何重新连接到会话。

这是工作时的样子:

良好的xrdp会话过程

如果您遇到“密码失败”的问题,您可能会看一下GitHub中的两个问题

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

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

简而言之,他们提到指定端口号不再适用于最新设计。

这个UbuntuForum线程看起来很有用 – 我自己没有测试过 – 但是我已经复制了这里给出的解决方案来完成这个答案。

RealVNC设置

1.卸载默认的Ubuntu VNC服务器(Vino):

转到:系统 – >管理 – > Synaptic Package Manager搜索“Vino”包,Mark For Removal,Apply。

2.安装TightVNC和XRDP:

当您使用Synaptic Package Manager时,seacrh为“tightvnc”包(小心,而不是“ xtightvnc ”)和Mark For Installation。 同样,搜索“xrdp”包并标记为“安装”。 应用。 PS:如果你愿意,你可以丢弃你不需要的任何其他“vnc”套餐!

3. XRDP的配置(可选)

打开终端并键入以下三个命令:

  cd /etc/xrdp cp xrdp.ini xrdp.ini.bak sudo gedit /etc/xrdp/xrdp.ini 

删除Xrdp2-Xrdp6部分,只留下Xrdp1部分。 你的xrdp.ini应该是这样的:

 [globals] bitmap_cache=yes bitmap_compression=yes port=3389 crypt_level=low channel_code=1 [xrdp1] name=RDP_To_TightVNC lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 

4.连接

重新启动系统,您就可以连接了!

要从另一台Ubuntu机器连接,请使用:Applications – > Internet – > Terminal Server Client,键入Ubuntu VNC机器的IP,使用RDPv5或RDP,单击Connect!

要从基于Windows的计算机进行连接,请使用:开始 – >运行 – > mstsc,键入Ubuntu VNC计算机的IP,单击“连接”。

连接后,使用您的Ubuntu用户帐户凭据(u / n和p / w)并远程登录到您的桌面。