在 Ubuntu 14.04 上安装运行远程桌面服务器

在 Ubuntu 14.04 上安装运行远程桌面服务器

好的 - 这是我过去已经使用过很多次的东西 - 一个启用了 XDMCP 的 X 服务器,它可以提供包括登录处理程序在内的良好且出色的会话。

我拥有的:

  • 在 ESXi 上运行的虚拟 Ubuntu 机器 - 我希望这台机器就像 Windows 终端服务器一样。
  • 通过以下方式设置有效的 VNC x11vnc- 如果您有一个正在运行的会话,则此方法可行,但如果您想登录并创建新会话,则不行。此外 - 在多用户框上相当混乱
  • lightdm对和进行了大量实验gdm,试图使XDMCP功能正常运行。编辑/etc/lightdm/lightdm.conf/etc/gdm/*在某种程度上正在发挥作用。我可以通过 lightdm 运行登录管理器,但一旦登录,用户就只能挂起,没有会话可以玩。

lightdm(我现在所在的地方),我的lightdm.conf有这个:

[SeatDefaults]
allow-guest=false
[XDMCPServer]
enabled=true
port=177

这里有一些事情我认为我只是不明白——这是我想要一些非常好的答案的地方:

  • XDMCP 仍然存在(通过 SSH 或不通过 SSH),尽管它有点老旧和过时。是否有我不知道的新东西(如新协议)我应该使用?

  • 这类东西的用户群是否正在缩小?我是否应该采用不同的策略?我真的不想这样做,因为我喜欢终端服务器。

这当然是我真正寻找的答案:

  • 有人可以指出我在完全默认的 Ubuntu 14.04.2 桌面版(64 位)中需要更改的配置文件gdm中的确切位置吗?lightdm

我知道有像 LTSP 这样的项目,但这不是我想要的,因为我不想让我的客户启动到 Ubuntu 设置或任何东西 - 他们只需要能够像使用远程桌面启动 Windows 会话一样登录。我现在真的感到非常沮丧 - 十年前我工作得非常顺利,但现在我完全找不到可行的解决方案。

答案1

好的 - 我终于搞明白了。正如@gnur 所建议的那样,xrdp这是可以使用的东西,但不是开箱即用的。Ubuntu 附带的 XRDP 似乎比较旧,因此:

  • XRDP 必须从源代码构建。获取源代码这里并遵循非常好的手册这里让一切工作正常。没有这个,会话重新连接就无法进行,这有点让人失望。

我已经做了一些额外的事情以使事情完全顺利:

  • XRDP 的工作方式与其他 X 的工作方式不同xmodmap,因此如果您的键盘在 XRDP 会话中无法按您希望的方式工作,您必须:
    • 登录到真正的控制台会话(即不是通过 XRDP,而是通过 ESXi 控制台或物理方式)并在该会话中调整内容以适应您的键盘布局。尝试setxkbmap -model pc104 -layout <your-layout>dk就我而言)
    • 然后将工作布局转储到.iniXRDP 可以加载的文件中。请执行以下操作:xrdp-genkeymap mymap.ini
    • /var/log/xrdp.log通过查看类似 的内容来弄清楚文件的实际名称local keymap file for 0x0406 found。然后将文件命名为/etc/xrdp/km-0406.ini。这需要一段时间才能弄清楚。
  • 修改您的/etc/xrdp/xrdp.ini,以便您有一个如下所示的会话描述: [xrdp1] name=sesman-Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 delay_ms=2000 关键部分是lib-delay_ms没有延迟,登录 XRDP 会话后我没有桌面。似乎底层 VNC 会话需要一点时间才能准备好,如果连接尝试得太早,您将一无所获。
  • ~/.xsession在您的文件中放入一些合理的内容。我已经这样做了xfce4-session,但这样做还带来了另一个奇怪的问题 - 终端窗口中的 Tab 补全不起作用。显然,XFCE 使用 Tab 键进行窗口切换。要修复此问题,您需要编辑(也许还有 GUI 功能)~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml并应用所述修复程序这里

就是这样!运行这个后,我就有了一个非常好的 XDMCP 替代品,它让用户可以像对待 Windows 会话一样对待 Ubuntu 会话。正如我想要的那样 :-)

编辑 使用了一段时间后,我发现这个解决方案虽然可行,但不太稳定。有时,会话重新连接不起作用,用户将处于不确定状态,根本无法登录。重新启动服务可以解决这个问题,但效果并不好。

所以 - 我又找了些可行的解决方案 - 终于找到了!我的新好朋友是x2go,它是一个独立的 X 服务器,带有一个特殊的客户端包,适用于多种操作系统。

编辑2: 好的 - 那就再多说一点吧。我发现虽然 X2go 很不错,但 Windows 客户端有一个怪癖,几乎阻止它使用基于密钥的 SSH 登录,所以我不得不为我的桌面主机启用常规 PW 登录。这不是最佳选择,但这并不能改变 X2go 在所有其他方面都运行良好的事实。

编辑3: Scarygliders 目前有一个非常好的脚本,可以获取、编译和安装 RDP 会话设置所需的一切。我几乎消除了对我发现的其他东西的需求。获取脚本这里通过克隆。然后运行X11rdp-o-matic.sh --justdoit。我现在有一个桌面主机,为五个用户提供服务,他们都在进行 Python 开发等。非常好。

相关内容