本文详细介绍如何在 Ubuntu Server 上安装和配置 VNC4Server 远程桌面服务,并部署轻量级的 XFCE 图形桌面环境,实现图形化远程管理。

应用场景:

在服务器上安装图形桌面环境和 VNC 服务在以下场景中非常有用:

  • 需要使用图形界面管理服务器
  • 运行需要图形界面的应用程序
  • 远程协助和技术支持
  • 开发和测试图形应用
  • 数据分析和可视化工作

无论您使用的是新加坡VPS日本独立服务器还是本地 Ubuntu Server,通过 VNC 可以方便地进行图形化远程管理。XFCE 作为轻量级桌面环境,特别适合服务器使用,资源占用少且运行稳定。


系统要求:

适用系统版本:

  • Ubuntu Server 16.04 LTS
  • Ubuntu Server 18.04 LTS
  • Ubuntu Server 20.04 LTS
  • Ubuntu Server 22.04 LTS
  • Debian 9/10/11

硬件建议:

  • CPU:2 核心或以上
  • 内存:至少 2GB(推荐 4GB 以上)
  • 磁盘:至少 10GB 可用空间
  • 网络:稳定的互联网连接

权限要求:

  • sudo 权限或 root 权限
  • 建议使用普通用户配置 VNC(安全性考虑)

准备工作:

第一步:更新系统

在开始安装之前,先更新系统软件包:

sudo apt-get update sudo apt-get upgrade -y

第二步:创建或准备普通用户

VNC 服务应该使用普通用户运行,而不是 root 用户。如果还没有普通用户,创建一个:

sudo adduser vncuser

按提示设置密码和用户信息。

切换到该用户:

su - vncuser

或使用 SSH 以该用户身份登录。

第三步:检查网络连接

确保服务器可以访问互联网,以便下载软件包:

ping -c 4 google.com


一、安装 VNC4Server

安装 VNC 服务器:

sudo apt-get install vnc4server -y

安装说明:

  • vnc4server 是 VNC 协议的服务器实现
  • 支持多用户同时连接
  • 轻量级,资源占用少
  • 兼容大多数 VNC 客户端

验证安装:

which vnc4server

输出应该显示:

/usr/bin/vnc4server


二、配置 VNC 密码

重要提示: 以下操作必须使用普通用户执行,不要使用 root 用户。

设置 VNC 访问密码:

使用普通用户(如 vncuser)执行:

vnc4passwd

按照提示操作:

Password: [输入密码,至少 6 个字符] Verify: [再次输入相同密码] Would you like to enter a view-only password (y/n)? n

密码说明:

  • 访问密码: 客户端连接时需要输入的密码
  • 只读密码(可选): 只能查看不能操作的密码,通常选择 n 跳过
  • 密码长度至少 6 个字符
  • 密码保存在 ~/.vnc/passwd 文件中

测试 VNC 服务:

首次启动 VNC 服务:

vnc4server

输出示例:

New 'hostname:1 (vncuser)' desktop is hostname:1

Creating default startup script /home/vncuser/.vnc/xstartup Starting applications specified in /home/vncuser/.vnc/xstartup Log file is /home/vncuser/.vnc/hostname:1.log

输出解读:

  • hostname:1 - VNC 服务运行在显示编号 :1 上
  • 默认端口为 5901(5900 + 显示编号)
  • 创建了配置目录 ~/.vnc/
  • 生成了启动脚本 xstartup

查看 VNC 进程:

ps aux | grep vnc4server

查看监听端口:

netstat -tunlp | grep 5901

或使用 ss 命令:

ss -tunlp | grep 5901


三、测试默认连接(可选)

在安装图形环境之前,可以先测试 VNC 连接是否正常。

本地安装 VNC 客户端:

Windows 系统:

  • RealVNC Viewer(推荐)
  • TightVNC Viewer
  • UltraVNC

macOS 系统:

  • RealVNC Viewer
  • Screen Sharing(系统自带)

Linux 系统:

sudo apt-get install xtightvncviewer

连接 VNC 服务器:

在 VNC 客户端中输入连接地址:

your_server_ip:1

your_domain_name:1

例如:

192.168.1.100:1

server.example.com:1

输入之前设置的 VNC 密码,应该能看到一个简单的 X Terminal 窗口(灰色背景,只有一个终端)。

停止 VNC 服务:

测试完成后,停止 VNC 服务实例:

vnc4server -kill :1

命令说明:

  • -kill 参数用于停止指定的显示编号
  • :1 表示停止显示编号为 1 的 VNC 实例
  • 如果有多个实例,可以使用 :2, :3 等

四、安装 XFCE 图形桌面环境

XFCE 是一个轻量级的桌面环境,特别适合服务器使用。对于运行在韩国独立服务器香港VPS上的 Ubuntu Server,XFCE 能提供良好的性能和用户体验。

安装 XFCE4:

sudo apt-get install xfce4 xfce4-goodies -y

安装包说明:

  • xfce4 - XFCE 核心桌面环境
  • xfce4-goodies - XFCE 扩展插件和工具(可选但推荐)

安装过程: 安装过程可能需要 5-15 分钟,取决于网络速度和服务器性能。安装过程中可能会提示选择显示管理器,选择 lightdm 或 gdm3 都可以,建议选择 lightdm(更轻量)。

安装的主要组件:

  • xfwm4 - 窗口管理器
  • xfce4-panel - 面板
  • xfdesktop - 桌面管理器
  • xfce4-session - 会话管理器
  • thunar - 文件管理器
  • xfce4-terminal - 终端模拟器

验证安装:

dpkg -l | grep xfce4

应该能看到多个 xfce4 相关的软件包。


五、配置 VNC 启动 XFCE

安装 XFCE 后,需要配置 VNC 启动脚本,让 VNC 启动时自动加载 XFCE 桌面环境。

进入 VNC 配置目录:

cd ~/.vnc

备份原始配置:

cp xstartup xstartup.backup

编辑启动脚本:

vi xstartup

或使用 nano 编辑器:

nano xstartup

原始内容(参考):

#!/bin/sh

Uncomment the following two lines for normal desktop:

unset SESSION_MANAGER

exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & x-window-manager &

修改后的内容:

找到以下行:

x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &

在这一行之后,注释掉最后一行:

#x-window-manager &

然后添加以下 XFCE 启动命令:

x-session-manager & xfdesktop & xfce4-panel & xfce4-menu-plugin & xfsettingsd & xfconfd & xfwm4 &

完整的修改后配置文件示例:

#!/bin/sh

Uncomment the following two lines for normal desktop:

unset SESSION_MANAGER

exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &

启动 XFCE 桌面环境

x-session-manager & xfdesktop & xfce4-panel & xfce4-menu-plugin & xfsettingsd & xfconfd & xfwm4 &

配置说明:

  • x-session-manager - 会话管理器
  • xfdesktop - 桌面背景和图标管理
  • xfce4-panel - 顶部/底部面板
  • xfce4-menu-plugin - 应用程序菜单
  • xfsettingsd - 设置守护进程
  • xfconfd - 配置守护进程
  • xfwm4 - 窗口管理器

保存文件:

vi 编辑器:按 Esc,输入 :wq 回车 nano 编辑器:按 Ctrl+X,输入 Y,按回车

设置执行权限:

chmod +x ~/.vnc/xstartup


六、启动 VNC 服务并连接

启动 VNC 服务:

vnc4server

或指定分辨率启动:

vnc4server -geometry 1920x1080

vnc4server -geometry 1366x768

常用分辨率:

  • 1920x1080 - Full HD
  • 1680x1050 - 宽屏
  • 1440x900 - 常规宽屏
  • 1366x768 - 笔记本常见分辨率
  • 1280x1024 - 标准 4:3

指定显示编号:

vnc4server :2

这会在端口 5902 上启动服务。

查看运行的 VNC 实例:

vnc4server -list

ps aux | grep vnc

使用 VNC 客户端连接:

在 VNC Viewer 中输入:

your_server_ip:1

输入 VNC 密码后,应该能看到完整的 XFCE 桌面环境,包括:

  • 桌面背景
  • 顶部面板(或底部面板)
  • 应用程序菜单
  • 文件管理器图标
  • 系统托盘

七、修改 VNC 默认端口

默认情况下,VNC 服务使用 5901 端口(显示 :1)。如果想使用标准的 5900 端口,可以修改配置。

编辑 VNC 服务器配置:

sudo vi /usr/bin/vnc4server

查找以下行:

$vncPort = 5900 + $displayNumber;

修改为:

$vncPort = 5899 + $displayNumber;

这样,当启动 :1 时,端口就是 5899 + 1 = 5900。

保存并重启 VNC:

vnc4server -kill :1 vnc4server

验证端口:

netstat -tunlp | grep 5900


八、配置 VNC 开机自启动

为了让 VNC 服务在系统启动时自动运行,可以创建 systemd 服务单元。

创建服务文件:

sudo vi /etc/systemd/system/[email protected]

输入以下内容:

[Unit] Description=Start VNC server at startup After=syslog.target network.target

[Service] Type=forking User=vncuser Group=vncuser WorkingDirectory=/home/vncuser

PIDFile=/home/vncuser/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vnc4server -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vnc4server -depth 24 -geometry 1920x1080 :%i ExecStop=/usr/bin/vnc4server -kill :%i

[Install] WantedBy=multi-user.target

重要说明:

  • 将 User 和 Group 改为您实际使用的用户名
  • 将 WorkingDirectory 和 PIDFile 路径中的用户名改为实际用户
  • 可以修改 -geometry 参数设置分辨率

重新加载 systemd:

sudo systemctl daemon-reload

启动并启用服务:

sudo systemctl start [email protected] sudo systemctl enable [email protected]

查看服务状态:

sudo systemctl status [email protected]

管理服务:

停止服务:

sudo systemctl stop [email protected]

重启服务:

sudo systemctl restart [email protected]

禁用自启动:

sudo systemctl disable [email protected]


九、配置防火墙

如果服务器启用了防火墙,需要开放 VNC 端口。对于使用台湾独立服务器马来西亚VPS的用户,还需要在云平台的安全组中配置规则。

使用 UFW 防火墙(Ubuntu 默认):

检查防火墙状态:

sudo ufw status

开放 VNC 端口:

sudo ufw allow 5901/tcp

或开放一个范围(支持多个 VNC 实例):

sudo ufw allow 5900:5910/tcp

重新加载防火墙:

sudo ufw reload

验证规则:

sudo ufw status numbered

使用 iptables:

如果使用 iptables,执行:

sudo iptables -A INPUT -p tcp --dport 5901 -j ACCEPT sudo iptables-save > /etc/iptables/rules.v4

云服务器安全组配置:

如果使用云服务器,还需要在云平台控制台中:

  1. 进入安全组设置
  2. 添加入站规则
  3. 协议:TCP
  4. 端口:5901(或 5900-5910)
  5. 来源:根据需要设置(建议限制为特定 IP)

十、安全加固建议

1. 使用 SSH 隧道(强烈推荐)

通过 SSH 隧道连接 VNC 更安全,避免 VNC 流量直接暴露在公网。

在本地计算机创建 SSH 隧道:

Windows(使用 PuTTY):

  • Session → Host Name: your_server_ip
  • Connection → SSH → Tunnels
  • Source port: 5901
  • Destination: localhost:5901
  • 点击 Add

Linux/macOS:

ssh -L 5901:localhost:5901 vncuser@your_server_ip

然后 VNC 客户端连接到:

localhost:1

这样 VNC 流量通过加密的 SSH 通道传输。

2. 限制访问 IP

在防火墙中只允许特定 IP 访问:

sudo ufw allow from 203.0.113.0/24 to any port 5901

3. 使用强密码

设置复杂的 VNC 密码,至少 8 位,包含大小写字母和数字。

4. 定期更新密码

定期更换 VNC 密码:

vnc4passwd

5. 禁用不必要的 VNC 实例

只运行需要的 VNC 实例,关闭多余的:

vnc4server -kill :2 vnc4server -kill :3

6. 监控连接日志

定期检查 VNC 日志文件:

tail -f ~/.vnc/*.log

7. 使用非标准端口

修改默认端口可以减少自动扫描攻击。


十一、常见问题排查

问题 1:连接时提示"连接被拒绝"

  • 检查 VNC 是否运行: ps aux | grep vnc
  • 检查端口监听: netstat -tunlp | grep 5901
  • 检查防火墙: sudo ufw status
  • 检查云安全组: 确认端口已开放

问题 2:连接后只显示灰屏

  • 原因: xstartup 配置错误
  • 解决: 检查 ~/.vnc/xstartup 文件内容和权限
  • 重启 VNC: vnc4server -kill :1 && vnc4server

问题 3:XFCE 组件未启动

  • 检查日志: cat ~/.vnc/*.log
  • 手动启动组件: 在 VNC 终端中执行缺失的命令
  • 重新安装 XFCE: sudo apt-get install --reinstall xfce4

问题 4:分辨率不正确

  • 启动时指定: vnc4server -geometry 1920x1080
  • 动态调整: 在 XFCE 设置中调整显示分辨率

问题 5:VNC 密码无效

  • 重新设置: vnc4passwd
  • 检查密码文件: ls -la ~/.vnc/passwd

问题 6:多个用户冲突

  • 原因: 不同用户使用相同显示编号
  • 解决: 每个用户使用不同的显示编号(:1, :2, :3)

问题 7:系统资源不足

  • 检查内存: free -h
  • 检查 CPU: top
  • 优化: 关闭不必要的服务,升级服务器配置

十二、性能优化建议

1. 调整颜色深度

降低颜色深度可以提高性能:

vnc4server -depth 16 -geometry 1920x1080

2. 禁用桌面效果

在 XFCE 设置中:

  • 关闭窗口阴影
  • 禁用桌面动画
  • 使用简单主题

3. 限制后台进程

关闭不必要的 XFCE 插件和服务。

4. 使用高效的 VNC 客户端

选择支持压缩和优化的 VNC 客户端,如 TurboVNC。

5. 调整网络设置

对于跨国连接,考虑使用压缩和质量调节。


十三、替代方案

TightVNC(更高效):

sudo apt-get install tightvncserver

TigerVNC(更现代):

sudo apt-get install tigervnc-standalone-server

x11vnc(共享现有桌面):

sudo apt-get install x11vnc

NoMachine(企业级方案):

提供更好的性能和用户体验,但不开源。

通过以上详细的安装和配置步骤,您可以在 Ubuntu Server 上成功搭建 VNC 远程桌面环境,并使用轻量级的 XFCE 图形界面。这个方案资源占用少,性能稳定,特别适合服务器环境使用。根据实际需求进行安全加固和性能优化,可以获得更好的使用体验。