为什么不用vnc?一是需要另外装个软件,不方便,而且配置麻烦,总是能碰到七七八八的问题,而用xrdp基本上用巨硬自带的软件就能实现远程连接。

安装并配置xrdp

注:我是kde桌面环境

sudo pacman -S xorg-xinit
sudo pacman -S base-devel
yay -S xrdp

以上是基础软件包,下面根据平台选择安装:

yay -S xortxrdp-glamor  #适用于I家和A家核显解码
yay -S xorgxrdp   #使用CPU编码
yay -S xordxrdp-nvidia   #使用英伟达独显解码

修改/etc/X11/Xwrapper.config(无此文件自行新建),添加如下内容:

allowed_users=anybody
needs_root_rights=no

复制一个.xinitrc到用户主目录并编辑其中内容:

cp /etc/X11/xinit/xinitrc /home/$USERNAME/.xinitrc

注释掉最后的几行

#twm &
#xclock -geometry 50x50-1+1 &
#xterm -geometry 80x50+494+51 &
#xterm -geometry 80x20+494-0 &
#exec xterm -geometry 80x66+0+0 -name login
export DESKTOP_SESSION=plasma
/usr/lib/plasma-dbus-run-session-if-needed startplasma-x11 

最后两行根据桌面环境替换:
i3w / dwm:

exec i3w

gnome

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec dbus-launch  gnome-shell --x11

xfce4

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec dbus-launch startxfce4

启动xrdp服务:

sudo systemctl enable xrdp
sudo systemctl start xrdp

一些小问题:

安装以后,黑屏、闪退
  1. 可以尝试修改/etc/xrdp/xrdp.ini,把allow_channels=true改成allow_channels=false
  2. 使用ps -elf|grep vnc查询是否有多个进程同时运行,如果有,直接kill -9 $pid(为避免出现这种问题建议每次都注销而不是直接叉掉rdp窗口)
权限(输入密码)弹窗不出来

新增/etc/polkit-1/rules.d/49-nopasswd_global.rules文件,并添加以下内容:

/* Allow members of the wheel group to execute any actions
 * without password authentication, similar to "sudo NOPASSWD:"
 */ 
polkit.addRule(function(action, subject) {
    if ((  action.id == "org.freedesktop.policykit.exec"
    || action.id == "org.fedoraproject.FirewallD1.all"
    || action.id == "org.fedoraproject.FirewallD1.config"
    || action.id == "org.freedesktop.NetworkManager.settings.modify.system") &&
      subject.isInGroup("wheel")) {
        return polkit.Result.YES;
    }
});

修改后会默认允许所有授权,可能存在一定风险。

修改3389端口

修改配置文件/etc/xrdp/xrdp.iniport=3389字段即可,如果有开防火墙记得开放端口。

最后修改:2024 年 02 月 05 日
如果觉得我的文章对你有用,请随意赞赏