如何设置重用现有会话的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
将不知道如何重新连接到会话。
这是工作时的样子:
如果您遇到“密码失败”的问题,您可能会看一下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)并远程登录到您的桌面。