Xrdp (简体中文)
xrdp 是一个守护程序,支持 Microsoft 的 Remote Desktop Protocol (RDP)。 它使用 Xvnc, X11rdp 或 xorgxrdp 作为其后端。
安装
安装 xrdpAUR 软件包 (或是选择开发版本 xrdp-gitAUR)。
开机自启动
xrdpAUR 软件包带有针对 systemd 的服务文件。 请 启用 xrdp.service
和 xrdp-sesman.service
。
作为终端服务器运行 (Xorg)
安装 the xorgxrdp-gitAUR 软件包。
将 allowed_users=anybody
添加到 /etc/X11/Xwrapper.config
以允许任何用户启动 X
编辑 ~/.xinitrc
或 /etc/X11/xinit/xinitrc
来启动你的桌面环境。
故障排除
- 如果你遇到鼠标指针周围出现黑框的情况,请创建
~/.Xresources-xrdp
写入一行Xcursor.core:1
并在~/.xinitrc
中加载它,例如
xrdb ~/.Xresources-xrdp exec startlxde
你可能还需要安装 xorg-xrdb。
- 在登录到会话管理器之后如果你的
~/.xinitrc
在dbus_args
中设置了--exit-with-session
则在登录到会话管理器后可能出现黑屏。
请尝试将 ~/.xinitrc
复制为 ~/.xrdpinitrc
,移除 --exit-with-session
,并更新 /etc/xrdp/startwm.sh
为调用 ~/.xrdpinitrc
而非 ~/.xinitrc
。 你可能需要在对 .xrdpinitrc 的调用中附加你的桌面环境,与 ~/.xinitrc 中的内容一致;例如 . ~/.xrdpinitrc xfce
。
- 如果你使用 KDE plasma 时出现黑屏:
尝试在 /etc/pam.d/system-auth
中注释掉对 systemd-home
的引用。
- 如果在桌面会话开始时提示你登录 gnome-keyring 则可将以下 2 行添加到
/etc/pam.d/xrdp-sesman
auth optional pam_gnome_keyring.so session optional pam_gnome_keyring.so auto_start
- 为防止用户定义的
~/.config/autostart
条目启动你可以在~/.xinitrc
中设置会话的 autostart 目录参数以便仅使用全局目录/etc/xdg/autostart
。
get_session(){ local dbus_args=(--sh-syntax) case "$SESSION" in awesome) dbus_args+=(awesome) ;; bspwm) dbus_args+=(bspwm-session) ;; budgie) dbus_args+=(budgie-desktop) ;; cinnamon) dbus_args+=(cinnamon-session -a /etc/xdg/autostart) ;;
配合 Vino 运行 (针对 root 会话的 Gnome VNC-Server)
启用服务以通过 vino-preferences 可见。 由于 vino 默认使用 5900 端口进行连接,我们要相应地编辑 xrdp 配置文件。 将 vino 会话添加到 xrdp 的配置文件:
/etc/xrdp/xrdp.ini
[xrdp8] name=Vino-Session lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=5900
如果你遇到了 VNC 连接错误,这可能是因为 vino-server
默认只接受 TLS 连接。 这必须改为标准 VNC 验证以便 xrdp
可以连接:
gsettings set org.gnome.Vino require-encryption false
你还可以限制 vino-server
只监听回环接口:
gsettings set org.gnome.Vino network-interface lo
请记得重启 xrdp 服务器,用户就将能够连接到 vino 会话 (已使用 xfreerdp 进行了测试)。
使用说明
在启动 xrdp
和 xrdp-sesman
服务后,你应当能够使用 RDP 客户端通过默认的 RDP 端口 (3389) 连接到主机。 如果成功,你将看到一个 xrdp 会话管理器窗口,你可以在其中选择 Xorg 或 Xvnc 会话并提供输入用于用户验证。 会话管理器界面可通过修改 /etc/xrdp/xrdp.ini
进行高度定制。
用于启动 Xorg 和 Xvnc 显示服务器的参数可在 /etc/xrdp/sesman.ini
中进行配置。
在成功启动显示服务器后,xrdp 默认将执行 /etc/xrdp/startwm.sh
。 该脚本会启动一个窗口管理器 (它与 .xinitrc) 类似) 并且通常需要进行修改以启动你想要的窗口管理器。 注意:默认脚本将尝试启动 xterm
因此未安装 xterm
将会导致连接失败。
如果你直接关闭会话窗口和 RDP 连接,你可以在下次打开 RDP 连接时访问同一个会话。 当你从会话窗口退出窗口管理器或桌面环境时,该会话将会关闭,当下次连接时将打开一个新的会话。
xrdp 将检测会话的窗口尺寸是否与已打开的相同。 如果尺寸/分辨率不匹配它将打开一个新会话。