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

nlo*_*wen 67 remote-desktop rdp lxde

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

jef*_*ind 54

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

apt-get install xrdp
Run Code Online (Sandbox Code Playgroud)

之后,它是关于您的 xrdp.ini 文件的,该文件位于此处:

/etc/xrdp/xrdp.ini
Run Code Online (Sandbox Code Playgroud)

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

sudo nano /etc/xrdp/xrdp.ini
Run Code Online (Sandbox Code Playgroud)

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

[xrdp1]
name=sesman-vnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
Run Code Online (Sandbox Code Playgroud)

重要的是port=-1,这使得 xrdp 总是寻找一个空闲端口来连接。如果您在此处设置固定端口,则 xrdp 将始终返回并连接到同一个会话。我改变了我的,所以它看起来像这样:

[xrdp1]
name=customsessionname
lib=libvnc.so
username=myusername
password=ask
ip=127.0.0.1
port=5912
Run Code Online (Sandbox Code Playgroud)

完蛋了,我想你可以逃脱只是改变了port=-1port=5912。我的 xrdp 总是使用相同的端口重新连接到现有会话。

  • 这仅在已经存在会话的情况下才有效。第一次进入时,没有会话,因此无法连接到端口 5912。 (9认同)
  • 遇到了同样的问题..似乎默认情况下它会尝试使用 5911port 打开连接(您可以在 xrpd 连接时注意到它)。所以我从 port=-1 改为 port=ask5911。这种方式默认使用 5911,但您可以在连接时输入用户名/密码时更改该端口(因此在出现错误时无需重新配置任何内容..) (4认同)
  • 这个解决方案对我来说效果很好,但我应该指出,连接到同一台机器的任何人都将获得相同的会话,即使其他人在该会话下登录也是如此。 (2认同)
  • 此行为严格取决于 vnc 服务器实现。在centos下,我使用tigervnc,它总是加入现有会话或创建一个端口=-1设置的会话。但是,在 ubuntu 下,默认值是ightvncserver,它没有相同的行为。如果有的话,就玩一下 vnc 实现吧。 (2认同)

小智 22

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

我试过了,但第一次连接时出错,所以最终切换回该-1值。沮丧很快就开始了,但仍然存在无法恢复的问题,所以我再次查看了 ini 文件。

什么对我有用,而且我真的很好奇的是:

编辑 /etc/xrdp/xrdp.ini

[xrdp1]那里port=-1我发现用户名和密码分别设置为ASK。如果您进行了设置,port=ask您将在登录提示中使用用户名和密码来选择端口。

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

总结一下:

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

  • 我能够成功地将条目更改为: [xrdp1] 。. . port=ask5910 这会将端口默认为 5910,因此您不必像 Vesanto 所说的那样记住它(我也永远不会记住它,Vesanto!)但如果您想生成新的桌面会话,还可以选择更改它在,说端口 5911。我在 Ubuntu 16.04 上测试了这个。 (10认同)
  • ^这也是我找到的最佳解决方案。 (2认同)

agc*_*c93 7

我讨厌成为一个只会删除链接的人,但我遵循了此处的指南并且效果非常好。我现在可以从 Linux 和 Windows 主机登录 RDP 会话,如果我之前登录过,我可以重新连接到我的旧会话。这是我找到的最好的安装指南。不幸的是,与从源代码安装相比,标准包安装会导致更多问题。

那个链接的作者也做了一个自动安装配置的工具,不过我没试过,小心点。

希望能帮到你。

  • 现在两个链接都死了 (8认同)

小智 2

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


Rah*_*ara -1

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

RealVNC 设置

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

转至:系统 --> 管理 --> Synaptic 软件包管理器 搜索“Vino”软件包,标记为删除,然后应用。

2. TightVNC和XRDP的安装:

当您使用 Synaptic 软件包管理器时,搜索“tightvnc”软件包(注意,不是“ xtightvnc ”)并标记为安装。同样,搜索“xrdp”包并标记为安装。申请。PS:如果你愿意,你可以丢弃任何其他你不需要的“vnc”包!

3. XRDP配置(可选)

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

 cd /etc/xrdp
 cp xrdp.ini xrdp.ini.bak 
 sudo gedit /etc/xrdp/xrdp.ini
Run Code Online (Sandbox Code Playgroud)

删除 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
Run Code Online (Sandbox Code Playgroud)

4. 连接

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

要从另一台 Ubuntu 计算机进行连接,请使用:应用程序 --> Internet --> 终端服务器客户端,键入 Ubuntu VNC 计算机的 IP,使用 RDPv5 或 RDP,单击连接!

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

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