使用xrdp连接到桌面会话。

我在我的台式电脑上使用Ubuntu。当我离开台式电脑时,我希望能够使用我的Windows 7笔记本电脑访问会话。目前,我正在使用xrdp进行连接,但它会启动一个远程会话。有没有办法只使用同一个桌面会话?我想要能够从离开的地方继续工作。
谢谢。

你看过这个问题吗?http://askubuntu.com/questions/133343/how-do-i-set-up-xrdp-session-that-reuses-an-existing-session - Barbarrosa
是的。我相信他们指的是在后续登录时连接到现有的远程会话(这对我也适用)。然而,我想要连接到桌面会话并重复使用它。 - Jonathan B
4个回答

嗯,我无法找到纯粹使用xrdp的方法来实现这一点,但我找到了一个很好的文章,介绍了如何设置rdp-to-vnc网关。它足够满足我的需求。
摘自http://ubuntuwiki.net/index.php/Xrdp,_installing
  1. 安装xrdp和vino

    sudo apt-get update && sudo apt-get install xrdp vino
    
  2. 配置vino以便可以远程连接到现有会话

    从终端输入vino-preferences,勾选“允许其他用户查看您的桌面”,“允许其他用户控制您的桌面”,并根据需要配置“安全”设置(您可能希望取消勾选“确认每次访问此计算机”并勾选“要求用户输入此密码”)。

  3. 配置xrdp以访问vino

    编辑/etc/xrdp/xrdp.ini,添加以下文本。将名称更改为您喜欢的任何名称。还要确保[xrdp1]使用与现有配置不冲突的数字。

    # 设置空用户名,因为VNC身份验证
    # 实际上不使用用户名,所以没有
    # 询问用户提供用户名的意义。
    
    [xrdp1]
    name=Active Local Login
    lib=libvnc.so
    username=
    password=ask
    ip=127.0.0.1
    port=5900
    

1你知道是否可能访问控制台的登录界面吗?如果我需要远程重启电脑,在家回来时我希望能够在控制台登录,这样桌面还会保留。 - Toland H
这个指南真的完整吗?按照所有步骤后,我似乎没有一个正在运行的VNC服务器。当我尝试使用freerdp连接时,我看到 "connecting to 127.0.0.1:5900 error - problem connecting" 的错误提示。 - Iain Samuel McLean Elder
1Vino在XFCE上不会自动启动。我已经提出了一个错误报告,并在这里解释了修复方法:https://bugzilla.gnome.org/show_bug.cgi?id=727473 - Iain Samuel McLean Elder
我也遇到了“连接问题”,但是如果我使用 netstat 命令,它告诉我端口5800(仅IPv6)和5900(同时支持IPv4和IPv6)上正在运行 vino-server。我使用的是默认的Ubuntu安装,并确保我已经勾选了适当的选项,允许其他人连接和控制我的桌面。 - starbeamrainbowlabs
1根据@IainElder的链接建议,我已成功将vino-server设置为自动启动。现在我尝试连接时出现以下错误:“开始连接 连接到127.0.0.1 5900 TCP已连接 安全级别为0(1 =无,2 =标准) 错误-连接问题”。我使用正确的IP地址登录,提供用户名和密码“ubuntu”和“ubuntu”,以及端口5900。更新:使用此命令解决了问题´gsettings set org.gnome.Vino require-encryption false´和´sudo reboot´。 - Jan-Terje Sørensen
这个解决方案能否支持多个显示器?在Ubuntu主机上,桌面也无法调整大小。 - Eugene Mala

我和你有同样的问题 :) 在安装xrdp、xfce并更改xrdp.ini(如你自己的回答中所示)后,我能够重新加入远程会话。然而,我无法共享桌面,换句话说,无法重新加入本地会话。 对我来说,vino的东西不起作用,我收到了“连接到127.0.0.1:5900错误-连接问题”的消息。从我的观点来看,这是因为缺少vncserver,正如iain-samuel-mclean-elder在评论中指出的那样。 长话短说,我成功地使用x11vnc使其正常工作。当计算机启动时,一个服务会调用x11vnc。

也许以下内容对其他人有所帮助,这样他们就不必像我一样整天在互联网上搜索了。

您需要遵循的说明仅来自下面两个链接。

--> 我只是根据自己的需求修改了/etc/xrdp/xrdp.ini文件:

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

     [xrdp2]
     name=Local Session
     lib=libvnc.so
     username=
     password=ask
     ip=127.0.0.1
     port=5900
     ...

这个设置的好处是,如果你用Windows上的标准rdp连接,你可以远程重启电脑,再次远程连接时,你会进入电脑的正常登录界面,就像你坐在电脑前一样。使用rdp连接后,在xrdp菜单中选择"Local Session",密码是你选择的vncserver密码,在你按照上面的c-nergy链接操作时设置。
如果你只想打开另一个会话,可以选择"remote session"。
希望这能帮到你...
问候 Highway

这个方法能用,但速度不如Ubuntu内置的VNC(可能是因为使用了libvnc)。它仍然比Teamviewer/Anydesk慢,我尝试了XRDP,因为我在寻找在局域网中共享桌面的解决方案,并注意到与这两种商业解决方案相比,VNC 稍微有些迟钝。Anydesk速度更快,但即使在局域网连接时也需要互联网连接。 - zilexa

更好的做法是将您的 `/etc/xrdp/xrdp.ini` 文件设置如下:
[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=ask5910

这样它将使用默认端口5910请求。如果在5910上不存在VNC会话,那么连接尝试将失败。在这种情况下,请再试一次,但将端口设置为-1以强制创建新会话,通常在5910上。

4这不是OP所要求的... - einpoklum

请尝试以下操作:
在您的 /etc/xrdp/xrdp.ini 文件中,将 delay_ms 的值从已有的数值增加。
我遇到了同样的问题,并将 delay_ms 从2000更改为5000,这对我有效。
不确定是否与网络速度有关。