Linux 服务器没有屏幕,大多数时候也不需要。但有时需要:必须从服务器自己的地址运行的浏览器、只有图形界面的工具,或者一个可以一直开着、从任何电脑回来继续用的桌面。本指南为 Ubuntu 24.04 装上轻量桌面 XFCE 和 xrdp,让你用连接 Windows 服务器时同样的远程桌面应用打开它。
我们在自己的 Ubuntu 24.04 镜像上测试了每一步。有两个默认设置让第一次尝试失败了,下面把两个都修好。你需要一个带 sudo 的普通用户,Ubuntu 配置指南里会创建一个。示例中它叫 deploy。
1. 安装 XFCE 和 xrdp
sudo apt update
sudo apt install -y xfce4 xfce4-goodies xrdp
在我们 2 GB 的服务器上,这一步用了大约四分半钟,占用 1.7 GB 磁盘(安装前已用 2.7 GB,安装后 4.4 GB)。它会装上 xrdp 0.9.24,并立即启动,监听 3389 端口。
2. 让 xrdp 启动 XFCE,而不是 GNOME
用将要使用桌面的那个用户登录,然后运行:
echo xfce4-session > ~/.xsession
没有这个文件时,我们第一次登录启动的是 GNOME 而不是 XFCE,会话立刻以 "Oh no! Something has gone wrong" 结束。第 1 步的软件包会顺带装上 GNOME 的会话管理器,Ubuntu 会把它设为默认。有了 ~/.xsession,xrdp 就会启动 XFCE。
3. 让 xrdp 使用 TLS
xrdp 以自己的 xrdp 用户运行,这个用户读不了服务器的私钥。我们的第一次连接成功了,但 /var/log/xrdp.log 说明了为什么不该信任它:
Cannot read private key file /etc/xrdp/key.pem: Permission denied
Non-TLS connection established from ::ffff:127.0.0.1
没有私钥,xrdp 就会退回到旧的 RDP 加密,而不是 TLS。给它读取权限并重启:
sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp
下一次连接在我们的日志里显示为 TLS connection established ... TLSv1.3。你也可以用同样的方法检查自己的服务器:
sudo grep -E "TLS connection|Non-TLS" /var/log/xrdp.log | tail -2
4. 别让 3389 端口暴露在互联网上
装好后,xrdp 会在所有地址上监听。和 Windows 不同,xrdp 没有 Network Level Authentication,所以任何能连到这个端口的人都会看到登录界面,可以在上面猜密码。让它只在服务器本机上监听:
sudo sed -i 's|^port=3389$|port=tcp://127.0.0.1:3389|' /etc/xrdp/xrdp.ini
sudo systemctl restart xrdp
ss -ltn | grep 3389
最后一行应该显示 127.0.0.1:3389。在我们的测试中,此后直接连接服务器地址的 3389 会被拒绝,而下一步的隧道照常可用。
5. 通过 SSH 连接
在你自己的电脑上打开隧道。Windows 的 PowerShell 里也有同样的 ssh 命令:
ssh -L 13389:localhost:3389 deploy@YOUR.SERVER.IP
NAT 套餐要加上 -p 和控制面板里的专属 SSH 端口。保持这个窗口不要关。然后把远程桌面应用指向 localhost:13389,用 deploy 和该用户的密码登录:
- Windows: 远程桌面连接(
mstsc)。 - macOS: App Store 里的 Windows App。
- Linux: Remmina,或
xfreerdp /v:localhost:13389 /u:deploy。
本地端口用 13389 而不是 3389,是因为你电脑上的 3389 可能已经被它自己的远程桌面占用了。第一次连接时,应用会提示一个它不认识的证书。那是服务器的自签名证书,而且连接本来就在 SSH 里加密了。
6. 你会得到什么
你会得到一个带面板、文件管理器和终端的 XFCE 桌面。在我们的服务器上,一个会话大约增加了 360 MB 内存:连接前已用 388 MB,会话期间 747 MB。
关闭远程桌面窗口并不会退出登录。在我们的测试中,断开连接后一个长时间运行的命令还在继续。再次连接时,xrdp 把我们送回了同一个会话(日志里是 reconnected session ... display :10)。要真正结束会话,请在 XFCE 菜单里点 Log Out。
选哪个套餐
桌面更吃内存而不是 CPU。Micro(2 vCPU、2 GB、25 GB,$5/月)跑 XFCE 和轻量工具很轻松。如果打算在会话里一直开着浏览器,选 Small,4 vCPU、4 GB,$8/月。两者都是 NAT 套餐,在这里没有影响:远程桌面走的是你的 SSH 端口。
如果你真正需要的是 Windows 软件,Windows VPS 可以直接运行,Windows-Small 起价 $11/月。Ubuntu 24.04 在 Ubuntu VPS 页面上,所有 VPS Linux 套餐都可选。支付方式为 Base、Ethereum 或 Polygon 网络上的 USDT、USDC 或 ETH。
评论
暂无评论。来做第一个吧。