无法使用 xrdp 进行远程桌面

无法使用 xrdp 进行远程桌面

我有一台 Ubuntu 虚拟机,需要对其进行远程桌面操作。我无法物理访问该机器,只能通过 ssh 访问该机器。我想进行远程桌面操作,并想出了很多选项(vnc、xrdp、opennx)。我使用了 xrdp,并在 ubuntu 机器中安装了必要的软件包(xrdp 和依赖项)。然后,我使用以下命令行选项在 ubuntu 中启用了远程访问。

gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true

gconftool-2 -s -t bool /desktop/gnome/remote_access/prompt_enabled false

然后我重新启动了 xrdp(/etc/init.d/xrdp start)。但是当我尝试使用 windows 客户端(mstsc)执行 rdp 时,出现以下错误。未启用对服务器的远程访问。

我该如何解决这个问题?请帮忙。

拉吉

答案1

在文件 /etc/xrdp/xrdp.ini 上添加 address=0.0.0.0,这是默认的 xrdp 地址。

您还必须允许防火墙监听 xrdp 正在运行的端口 3389 上的连接。为此执行:

sudo ufw allow 3389

如果这也不起作用:

  1. 重启电脑
  2. 禁用sudo ufw disable服务器电脑上的防火墙(),然后重新检查(甚至可能需要再次重新启动)。

如果你错过了,我将在下面列出整个过程(这是一个疼痛组装)。只要你一步一步地按照做就没问题了(保证!)。


任何操作系统之间的远程桌面分步指南

. Windows 至 / 来自 Windows:

使用 Windows 远程桌面软件

. Linux / Unix 到/从任何地方

首先在您将通过远程桌面连接的服务器计算机上执行以下操作:

- Allow other users to view your desktop
- Best to require a password
- service ssh status
- To allow computers to connect with X11 graphics system capabilities as well, you need to 
    install an X11 server on the computer that is trying to connect (client). So
    * for a Windows computer use XMing
    * for a Linux Ubuntu computer use XQuartz

亚组. 从具有图形支持的终端将 Windows 转换为 Linux

- Launch XMing on Windows client
- Launch Putty
    * Fill in basic options
    * Connection -> SSH -> X11
        -> Enable X11 forwarding
        -> X display location = :0.0
        -> MIT-Magic-Cookie-1
        -> X authority file for local display = point to the Xming.exe executable

乙型. (b 代表更好) Windows 到 Linux 具有完整的 GUI 支持。这是大多数人想要的。

- install xrdp which uses the remote desktop protocol to present a GUI to the user. 
    It can provide a fully functional Linux terminal server, capable of accepting connections 
    from rdesktop, freerdp, and Microsoft's own terminal server / remote desktop clients. 
    xrdp is the daemon that handles RDP remote desktop access from Windows machines to Linux 
- edit the "/etc/xrdp/xrdp.ini" file to include the line:
    address=0.0.0.0
    right under #background=626x72 line. 0.0.0.0 is the local server address of xrdp
- Restart xrdp service
- allow xrdp port (probably 3389) through firewall
- We also need a VNC server. Install tightvncserver on Linux server machine. 
- run tightvncserver (no need to create a view-only password)
- "netstat -lvp | grep vnc" to check out the ports that tightvnc is listening on for 
    connections
- allow the vncserver port from the firewall: sudo ufw allow #
- allow the xrdp server
- Install xfce4 desktop environment an update to xfce, minimalistic faster and lightweight
    sudo apt-get install xfce4
- sudo apt-get install xfce4-terminal : way better than xterm
- sudo apt-get install gnome-icon-theme-full tango-icon-theme : installs icon sets
- Now we modify 2 files to make sure xrdp uses xfce4
    * echo xfce4-session >~/.xsession
    * secondly we modify startup file for xRDP located at /etc/xrdp/startwm.sh
        so it will start xfce4. Replace the last line with 
        startxfce4 
        (before it had something which started with a ., but no matter whatever it is, just 
        replace the last line)
    * restart xrdp service: sudo service xrdp restart
- Now you are ready to log into the computer from client using Remote Desktop (mstsc.exe). 
    Just supply the ipv4 or hostname of the VNC server.

. *nix 至 / 来自 *nix

- ssh -X [preferedUserName]@[targetIpv4Address] : -X flag enales X11 forwarding
- accept security certificates from trusted hosts when prompted

. 确保连接安全(可选步骤 - 适用于任何配置)

VNC 和 xrdp 协议不安全,这意味着它们未加密。

为了确保连接安全,请编辑 /etc/xrdp/xrdp.ini 文件,使地址变为 127.0.0.1。这将是 ssh 服务器的本地主机地址。下面将使用 SSH 加密来隧道传输 vnc 流量。

- sudo service xrdp restart
- sudo service ssh restart
- pkill Xtightvnc
- tightvncserver
- putty -> Connection -> SSH -> Tunnels 
    * Source port: 5555
    * Destination: localhost:3389

如果上述方法不起作用:

  1. 您可能需要重新启动两台计算机,
  2. 禁用sudo ufw disable服务器电脑上的防火墙(),然后重新检查(甚至可能需要再次重新启动)。
  3. 如果以上方法不起作用,则说明您安装了冲突的软件包,从而搞乱了系统。您必须手动进行故障排除(如果您正确遵循说明,则不太可能到达此步骤)。

资料来源及鸣谢:

答案2

我对 xrdp 不是特别熟悉,但我首先要检查的是它使用的端口是否 a) 正在监听连接和 b) 是否对外界开放。RDP 的默认端口是3389

第一个很容易检查;只需在您尝试连接的机器的终端中运行此命令(如果 xrdp 正在监听不同的端口,则更改 3389):

netstat -an | grep "LISTEN " | grep ":3389"

如果您收到类似以下内容的信息,则至少有某个东西(希望是 xrdp)正在监听连接:

tcp        0      0 127.0.1.1:3389            0.0.0.0:*               LISTEN

如果您没有得到任何输出,请尝试(重新)启动 xrdp 或检查以确保您拥有正确的端口。

接下来,您需要确保该机器可以通过该端口访问互联网,这涉及两件事:确保机器本身的防火墙没有阻止到该端口的连接,并确保任何网络设备(即路由器)您尝试连接的计算机和互联网之间没有阻止连接。港口转运网可以帮助解决后者;前者取决于您的机器上安装了什么类型的防火墙(如果有)。

希望这可以帮助!

答案3

我终于让它为我工作了;设置:运行 ubuntu 13.10 的旧笔记本电脑,运行标准 unity;我已经安装了 cairo dock(这对我来说更有用);仍然不习惯左侧应用栏;

如果能够使用我的 win7 系统通过 rdp 进入这个 ubuntu 13.10 就太好了,所以我今天早上花了几个小时做研究。以下是我所做的:

sudo apt-get update
sudo apt-get install xrdp

或者您可以使用 ubuntu 软件中心来安装。

安装似乎顺利进行,并且 xrdp 服务似乎已启动正常。

在我的 win7 盒子里,我打开了一个 rdp 窗口并使用笔记本电脑的 IP 地址进入;窗口确实打开了,但只是一个标准的 x11 窗口屏幕(带有 x 光标的交叉阴影图案);没有可用的链接、图标或菜单。

更多 Google 研究。我安装了 gnome-session-fallback:

$ sudo apt-get install gnome-session-fallback
$ echo "gnome-session --session=gnome-fallback" > ~/.xsession

这不起作用;我得到了相同的空白屏幕,但发现另一个 URL 建议使用另一个类似 XFCE 的 Windows 会话管理器,因此我安装了 xubuntu 桌面:

$ sudo apt-get install xubuntu-desktop
$ echo "xfce4-session" > ~/.xsession

sudo /etc/init.d/xrdp restart完成所有更改后请不要忘记。

这很有效。首先,在首次启动 rdp 会话时,我得到了相同的空白屏幕,但 10 秒后(可能是因为我在远程位置使用 win7 VDI)弹出了一个可用的 xfce xubuntu 桌面;不如 gnome 好用,但非常好用。

希望这些信息有用,因为我无法让最初的尝试发挥作用。

戴夫

答案4

sudo ufw disable 

然后尝试使用您的 rdp.. 客户端软件登录。我正在为 12.04 linux vps 设置它,到目前为止我已连接但看不到桌面,只有一个命令窗口。

嗨,伙计,你说你已经连接上了,但你看到的只是一个终端窗口,我不知道你的完整设置是什么,但这是我的,我希望它能有所帮助。

确保您的 vncserver 正在运行,vncserver :1 然后nano进入 ~/.vnc/xstartupbin!!blabla 文件,在其中您会看到最后一行(& -x-window-manager),添加 & /etc/X11/Xsession &

现在进入这个文件,/etc/xrdp/startwm.sh并确保其中的最后一行是

. /etc/X11/Xsession

完成后,通过以下步骤重新启动 vncserver。

vncserver -kill :1 

然后重新启动

vncserver :1

顺便说一句,我不仅要安装 Xrdp,而且还执行了几个命令,以便在 Xrdp 失败时进行回退,目前对我来说一切似乎都很好,一定要试一试,然后让我们知道结果如何。祝你好运。附言:当它工作时,它非常棒,坚持下去。

相关内容