让你的VPS拥有桌面环境(Ubuntu/Debian篇)
多数时候,我们使用 ssh 来管理远程服务器,可是有时候还是觉得有一个桌面环境更加得心应手,这时候我们就可以通过一点简单的配置,让其变身为可视化服务器,并且能够通过微软的远程桌面连接直接操作。这里我们以 Ubuntu22 和 Debian11 为例,来体验服务器可视化环境的乐趣。0. 折腾前的说明由于可视化桌面环境需要占用较多的服务器资源,远程桌面也需要稳定高速的网络环境,因此尽量保证你的 vps 要满足以下两点[*]性能相对充足,尽量 2 核 2G 以上
[*]网络连接较好,或有网络质量好的服务器来做流量中转
1. 安装桌面环境首先更新系统
sudo apt update -y && sudo apt upgrade -y
然后选择要安装的桌面环境,选择 Gnome,Xfce 或是 KDE 桌面都可以,看个人喜好如果是 Ubuntu 的话,执行下面的命令安装,安装一个就可以了
sudo apt install ubuntu-desktop -y # Gnome
sudo apt install xubuntu-desktop -y # Xfce
sudo apt install kubuntu-desktop -y # KDE
如果是 Debian 的话,同样安装一个就可以了,不过 debian11 无法使用 xrdp 远程 Gnome 桌面,尽管下面列出了且可以安装,但用不了,所以请不要选择
sudo apt install task-gnome-desktop -y # Gnome
sudo apt install task-xfce-desktop -y # Xfce
sudo apt install kde-plasma-desktop -y # KDE
启动时默认启动图形化桌面环境
sudo systemctl set-default graphical.target
为了安全,我们新建一个用户并赋予 sudo 权限用来登录桌面环境这里以创建 testuser 为用户名的用户为例
sudo useradd -d /home/testuser -m testuser
sudo passwd testuser
usermod -a -G sudo testuser
2. 安装 rdp 服务器桌面环境配置好了,现在需要安装 rdp 服务器供远程访问
sudo apt install xrdp -y
查看 xrdp 运行状态
sudo systemctl status xrdp
如果看到状态是 active,就没有问题
● xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-09-03 04:02:52 CEST; 7min ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Main PID: 107484 (xrdp)
Tasks: 1 (limit: 4620)
Memory: 1.7M
CGroup: /system.slice/xrdp.service
└─107484 /usr/sbin/xrdp
默认情况下,Xrdp 使用 /etc/ssl/private/ssl-cert-snakeoil.key, 它仅仅对 “ssl-cert” 用户组成语可读。运行下面的命令,将 xrdp 用户添加到这个用户组:
sudo adduser xrdp ssl-cert
重启 xrdp 服务
sudo systemctl restart xrdp
xrdp 服务搭建好了,默认运行在 3389 端口,需要在防火墙放行此端口。不过需要注意,直接这么暴露端口在公网下是很危险的,推荐设定 ip 白名单。如果需要完全开放 3389 端口的话,根据你正在使用的防火墙放行端口
# ufw
sudo ufw allow 3389
# nft
sudo nft add rule inet filter input tcp dport 3389 ct state new,established counter accept
# iptables
iptables -I INPUT -p tcp --dport 3389 -j ACCEPT
# firewalld
firewall-cmd --zone=public --add-port=3389/tcp --permanent
如果只想允许特定的 ip 或 ip 段访问的话,以 iptables 为例
iptables -A INPUT -p tcp --dport 3389 -s YOUR_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 3389 -j DROP
将 YOUR_IP 更换为允许访问的 IP3. 开启声音转发(可选)虽然现在桌面环境和远程服务已经配置好了,但是如果直接使用的话,远程桌面的声音是无法播放的,如果想要正常播放声音,就需要安装声音转发模块。xrdp 服务中并未包含此模块,需要手动编译安装。首先安装依赖
sudo apt install git build-essential autoconf libtool automake pkg-config libssl-dev libpam0g-dev libx11-dev libxfixes-dev libxrandr-dev libpulse-dev -y
拉取源代码
cd ~
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
cd pulseaudio-module-xrdp
准备安装环境
scripts/install_pulseaudio_sources_apt_wrapper.sh
这个脚本需要执行的时间比较长,请耐心等待,执行完后能看到
- Creating focal build root. Log file in /var/tmp/pa-build-testuser-debootstrap.log
- Creating schroot config file /etc/schroot/chroot.d/pa-build-testuser.conf
password for testuser:
- Copying /etc/apt/sources.list to the root
- Creating the build directory /build
- Copying the wrapped script to the build directory
- Building PA sources. Log file in /var/tmp/pa-build-testuser-schroot.log
- Copying sources out of the build root
- Removing schroot config file and build root
- All done. Configure PA xrdp module with PULSE_DIR=/home/testuser/pulseaudio.src
注意最后一行的输出,复制下 PULSE_DIR=/home/testuser/pulseaudio.src,粘贴在 configure 后,例如
./bootstrap && ./configure PULSE_DIR=/home/testuser/pulseaudio.src
编译并安装
make
sudo make install
在远程桌面看,你会发现音频输出设备变成了 xrdp sink。https://img.beauty/i/2023/03/03/640182c191bc5.webp
如此以来,就可以将远程桌面的声音在本地播放了。4. 安装中文支持(可选)安装中文字体
sudo apt install fonts-arphic-ukai fonts-arphic-uming fonts-ipafont-mincho fonts-ipafont-gothic fonts-unfonts-core -y
然后只需执行
sudo dpkg-reconfigure locales
会看到https://img.beauty/i/2023/03/03/640182d56d5cd.webp
向下找到 zh_CN.UTF-8,按空格选中后回车https://img.beauty/i/2023/03/03/640182ea543c9.webp
系统默认语言也选中 zh_CN.UTF-8 即可如果有的桌面环境中没有安装浏览器的话,可以这样一键安装 firefoxUbuntu:
sudo apt install firefox firefox-locale-zh-hans -y
Debian:
sudo apt install firefox-esr -y
5. 远程访问在远程访问的时候,可能会出现一些小问题,下面汇总几个常见的(1)登录成功后就闪退解决办法:在 ssh 中使用需要被远程登录的账户,按照你安装的桌面执行下面的命令,一般来说就没问题了。
# gnome桌面
echo gnome-session > ~/.xsession
# xfce桌面
echo xfce4-session >~/.xsession
# kde桌面
# echo "/usr/bin/startplasma-x11" > ~/.xsession
(2)登录成功后报错:something has gone wrong. A problem has occurred and the system can't recover.https://img.beauty/i/2023/03/03/640182fe8e4f1.webp
我所遇到的情况是因为默认选择的桌面环境不对,用如下方法修复:注:如果是 Debian11 且选择 Gnome 桌面看到这个错误,请放弃并选择其他桌面
ls -l /etc/alternatives/x-session-manager
sudo update-alternatives --config x-session-manager
例如我安装的额 xfce 桌面环境,就将默认值改为 3https://img.beauty/i/2023/03/03/64018318a3c47.webp
选择号正确的桌面环境,重新登陆就能解决6. 效果展示https://img.beauty/i/2023/03/03/6401832e53e21.webp
Ubuntu Gnomehttps://img.beauty/i/2023/03/03/64018341e16d7.webp
Debian Xfcehttps://img.beauty/i/2023/03/03/6401835b4c695.webp
Debian kde
页:
[1]