中文

在 Linux VPS 上安装 XFCE 桌面与 TigerVNC

1 min
VPS/VDS 主机

有些任务在图形桌面下更容易完成,比如在远程机器上运行浏览器、图形工具或桌面应用。XFCE 足够轻量,适合小型服务器,而 TigerVNC 让你可以在自己的电脑上看到它。本文在 VPS Linux Infrawire 上完成配置,并且 VNC 端口永远不会暴露到互联网:只能通过 SSH 隧道访问。

📋 前提条件

  • 一台运行 Ubuntu 24.04 或 Debian 12、可用 root 通过 SSH 登录的 VPS(在客户中心可以找到 VPS 的 IP 和 root 密码)。
  • 至少 2 GB 内存,以获得流畅的桌面体验。
  • 本地电脑上有 SSH 客户端和 VNC 查看器(RealVNC Viewer 或 TigerVNC Viewer)。
  • 一个普通用户账号:不要以 root 身份运行桌面。

📦 安装 XFCE 和 TigerVNC

先更新系统,再安装桌面和服务器。dbus-x11 可避免常见的灰屏问题。

Bash
apt update && apt upgrade -y apt install -y xfce4 xfce4-goodies tigervnc-standalone-server tigervnc-common dbus-x11

如果还没有专用用户,请先创建:

Bash
adduser USER usermod -aG sudo USER

🔑 设置 VNC 密码与会话

切换到该用户并设置 VNC 密码(最多只有前 8 个字符有效):

Bash
su - USER vncpasswd

对于只读密码的提问,回答 n。然后让 TigerVNC 启动 XFCE:

Bash
mkdir -p ~/.vnc cat > ~/.vnc/xstartup <<'EOF' #!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4 EOF chmod +x ~/.vnc/xstartup

手动测试,只监听 localhost:

Bash
vncserver :1 -localhost yes -geometry 1920x1080 -depth 24 vncserver -list vncserver -kill :1

⚙️ 用 systemd 自动启动

回到 root,创建一个为你的用户运行会话的单元文件。显示号 :1 对应 TCP 端口 5901。

INI
1# /etc/systemd/system/vncserver@.service 2[Unit] 3Description=TigerVNC server on display %i 4After=network.target 5 6[Service] 7Type=forking 8User=USER 9Group=USER 10WorkingDirectory=/home/USER 11PIDFile=/home/USER/.vnc/%H:%i.pid 12ExecStartPre=-/usr/bin/vncserver -kill :%i 13ExecStart=/usr/bin/vncserver :%i -localhost yes -geometry 1920x1080 -depth 24 14ExecStop=/usr/bin/vncserver -kill :%i 15 16[Install] 17WantedBy=multi-user.target
Bash
systemctl daemon-reload systemctl enable --now vncserver@1.service systemctl status vncserver@1.service

如需第二个用户,请用另一个名称复制该单元文件,改用那个用户和显示号 :2(端口 5902)。

🔒 通过 SSH 隧道连接

-localhost yes 选项让 VNC 只监听 127.0.0.1,因此外部无法访问。在你自己的电脑上建立隧道:

Bash
ssh -N -L 5901:localhost:5901 USER@VPS_IP

保持该窗口打开。在 VNC 查看器中连接 localhost:5901 并输入 VNC 密码。同样的命令在 Windows PowerShell 和 macOS 终端中都能使用。不要在任何防火墙中放行 5901 端口。

✅ 验证

在 VPS 上确认 VNC 只监听回环地址:

Bash
ss -tlnp | grep 5901 systemctl is-active vncserver@1.service

你应当看到 127.0.0.1:5901,而不是 0.0.0.0:5901。在本地电脑上,隧道建立后查看器应显示 XFCE 桌面。

🛠️ 故障排查

灰屏或没有桌面。 检查 ~/.vnc/xstartup 是否可执行、dbus-x11 是否已安装,并用 cat ~/.vnc/*.log 查看日志。最常见的原因是缺少 exec startxfce4 这一行。

“A VNC server is already running as :1”。 残留了过期的锁文件。执行 vncserver -kill :1,若仍存在则删除 /tmp/.X1-lock 和 /tmp/.X11-unix/X1,然后重启服务。

隧道拒绝连接。 服务多半已停止:请检查 systemctl status vncserver@1.service。同时确认本机的 5901 端口没有被占用,或换一个端口,例如 -L 5999:localhost:5901。


🎉 你的 VPS 现在提供一个私有的 XFCE 桌面,只能通过你的 SSH 隧道访问。

及时了解最新的优惠、折扣和特别促销活动。

查看促销

我们使用Cookie

我们使用分析性Cookie来改善您在我们网站上的体验。数据不会出售给第三方。了解更多请查看我们的 隐私政策.