Xrdp (简体中文) - ArchWiki

Jump to content

# Xrdp (简体中文)

From ArchWiki

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 将检测会话的窗口尺寸是否与已打开的相同。 如果尺寸/分辨率不匹配它将打开一个新会话。

## 参阅

- TigerVNC - VNC，一个 RDP 的替代品，同时在此用作后端
- freerdp 一个 rdesktop 的分支，它支持 RDP 7.1 特性，包括网络级别认证 (NLA)。 另请参见 [1]。

Category:

- Remote desktop (简体中文)