参考资料
根据上述大佬的文章操作。但还是遇到些问题,所以有了本次记录。
安装xfce4桌面
xubuntu-desktop包含xfce和其他工具包,更加开箱即用。
xfce4更加轻量,占用资源更少,但是可能缺少部分工具包。比如安装chrome的时候发现少了一些库,需要手动安装。
综合考虑,直接安装xfce4。
# xfce4
apt install xfce4 -y
# 启动时默认启动图形化桌面环境
systemctl set-default graphical.target
# 新建一个用户并赋予 sudo 权限用来登录桌面环境
useradd -d /home/truthseeker2077 -m truthseeker2077
passwd truthseeker2077
# 添加root权限
usermod -a -G sudo truthseeker2077
passwd只接受交互式输入密码。自动化工具中可以使用chpasswd修改用户密码;或者使用expect工具。
echo 'username:password' | chpasswd
安装和配置xrdp
apt install xrdp -y
# 默认情况下,Xrdp 使用 /etc/ssl/private/ssl-cert-snakeoil.key, 它仅仅对 “ssl-cert” 用户组成语可读。运行下面的命令,将 xrdp 用户添加到这个用户组
adduser xrdp ssl-cert
更新Xwrapper.config(访问x11环境的用户权限)
vi /etc/X11/Xwrapper.config
#allowed_users=console
allowed_users=anybody
needs_root_rights=yes
创建.xsession配置文件,解决登录成功后就闪退
# 在 ssh 中使用需要被远程登录的账户
# echo xfce4-session >~/.xsession
echo xfce4-session > /home/truthseeker2077/.xsession
重启xrdp服务
systemctl restart xrdp
systemctl restart xrdp-sesman
安装中文支持
安装中文字体,否则一些中文字体显示为方块
apt install -y fonts-arphic-ukai fonts-arphic-uming fonts-ipafont-mincho fonts-ipafont-gothic fonts-unfonts-core
apt install -y language-pack-zh-hans
如果想把界面也改成中文:
locale-gen zh_CN.UTF-8
update-locale LANG=zh_CN.UTF-8
# 或者重新登录
source /etc/default/locale
如果想恢复英语环境:
update-locale LANG=en_US.UTF-8
开放端口
ufw allow 3389
ip白名单方式
iptables -A INPUT -p tcp --dport 3389 -s YOUR_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 3389 -j DROP
常见错误
核心日志文件:
- /var/log/xrdp.log
- /var/log/xrdp-sesman.log
xrdp_wm_log_msg: login failed for display 0
/var/log/xrdp.log
[20240105-02:55:32] [WARN ] Cannot find keymap file /etc/xrdp/km-00000804.ini
[20240105-02:55:32] [WARN ] Cannot find keymap file /etc/xrdp/km-00000804.ini
[20240105-02:55:32] [INFO ] Loading keymap file /etc/xrdp/km-00000409.ini
[20240105-02:55:32] [WARN ] local keymap file for 0x00000804 found and doesn't match built in keymap, using local keymap file
[20240105-02:55:32] [INFO ] connecting to sesman ip 127.0.0.1 port 3350
[20240105-02:55:32] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20240105-02:55:32] [INFO ] sesman connect ok
[20240105-02:55:32] [INFO ] sending login info to session manager, please wait...
[20240105-02:55:34] [INFO ] xrdp_wm_log_msg: login failed for display 0
[20240105-02:55:34] [INFO ] login failed for display 0
/var/log/xrdp-sesman.log
[20240105-02:49:07] [INFO ] starting xrdp-sesman with pid 1534290
[20240105-02:53:04] [INFO ] Socket 8: AF_INET6 connection received from ::1 port 52180
[20240105-02:53:06] [ERROR] pam_authenticate failed: Authentication failure
[20240105-02:53:06] [INFO ] Username or password error for user: root
[20240105-02:53:06] [ERROR] sesman_data_in: scp_process_msg failed
可能的原因:
- 账号密码错误
- 账号密码错误,但是没有权限: xrdp访问ssl-cert;当前用户访问x11环境权限
登录成功后报错:something has gone wrong. A problem has occurred and the system can’t recover.
需要修复桌面环境
update-alternatives --config x-session-manager
根据安装情况选择。
闪退
/var/log/xrdp-sesman.log
[20240105-03:47:54] [WARN ] Window manager (pid 1589394, display 11) exited with non-zero exit code 139 and signal 0. This could indicate a window manager config problem
[20240105-03:47:54] [WARN ] Window manager (pid 1589394, display 11) exited quickly (2 secs). This could indicate a window manager config problem
重启xrdp、xrdp-sesman、重启系统。
/etc/X11/Xwrapper.config
(来自poe整理的资料)
/etc/X11/Xwrapper.config 是 X Window System的配置文件,它用于控制X服务器的启动和访问权限。让我们解析一下该配置文件的内容:
-
allowed_users:这一行指定了哪些用户可以启动X服务器。可能的值包括:console:只允许本地控制台上的用户启动X服务器。anybody:允许任何用户启动X服务器。root:只允许root用户启动X服务器。
默认情况下,该行设置为
console,这意味着只有本地控制台上的用户可以启动X服务器。 -
needs_root_rights:这一行指定是否需要root权限才能启动X服务器。可能的值包括:yes:需要root权限才能启动X服务器。no:不需要root权限。
默认情况下,该行设置为
no,这意味着不需要root权限才能启动X服务器。
根据这些设置,Xwrapper.config 文件决定了谁可以启动X服务器以及是否需要root权限。
请注意,对 Xwrapper.config 文件的更改可能需要重新启动系统或重新启动相关的服务(如 Xorg 或 XRDP)才能生效。
关闭自动锁屏
密码太长,每次自动锁屏都要重新输入,太痛苦。去Settings关闭锁屏:

安装拼音输入法
安装和启动ibus
apt install -y ibus ibus-pinyin
# 设置IBus作为默认的输入法框架。
im-config -n ibus
# 在xfce4会话中,打开终端并运行以下命令来启动IBus输入法框架:
ibus-daemon -drx
可能需要重新登录,或者重启xfce4桌面。
配置和添加中文输入法
- 在系统托盘区域找到IBus图标,右键单击它,选择“Preferences”(首选项)。
- 在“Input Method”(输入法)选项卡中,点击“Add”(添加)按钮。
- 在弹出的窗口中,选择“Chinese (Pinyin)”(中文(拼音))作为输入法,然后点击“Add”(添加)按钮。
- 关闭窗口。