Ubuntu 22.04 安装 VNC 服务器完整教程
VNC(Virtual Network Computing)是一种远程桌面协议,允许你通过网络远程控制 Ubuntu 桌面。本文将详细介绍在 Ubuntu 22.04 上安装和配置 VNC 服务器的完整步骤。
一、系统环境
在开始之前,请确保你的系统满足以下条件:
• Ubuntu 22.04 LTS(桌面版或服务器版)
• 具有 sudo 权限的用户账户
• 稳定的网络连接
二、安装桌面环境(服务器版用户)
如果你使用的是 Ubuntu 服务器版,需要先安装桌面环境。桌面版用户可以跳过此步骤。
# 更新软件包列表
sudo apt update
# 安装轻量级桌面环境 XFCE
sudo apt install -y xfce4 xfce4-goodies
# 或者安装完整桌面环境 GNOME(占用更多资源)
# sudo apt install -y ubuntu-desktop
三、安装 VNC 服务器
我们将使用 TigerVNC,这是一个功能强大且稳定的 VNC 服务器实现。
# 安装 TigerVNC 服务器
sudo apt install -y tigervnc-standalone-server
四、配置 VNC 服务
安装完成后,需要为每个用户配置 VNC 服务。以下步骤以当前用户为例:
4.1 设置 VNC 密码
# 设置 VNC 访问密码
vncpasswd
# 系统会提示:
# Password: 输入你的 VNC 密码(至少 6 个字符)
# Verify: 再次输入密码确认
# Would you like to enter a view-only password (y/n)? 输入 n(只读密码可选)
4.2 创建 VNC 启动脚本
创建用户目录的 VNC 配置文件:
# 创建 VNC 配置目录
mkdir -p ~/.vnc
# 创建启动脚本
nano ~/.vnc/xstartup
在打开的编辑器中,添加以下内容:
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# 启动 XFCE 桌面环境
exec /usr/bin/startxfce4
# 如果使用 GNOME 桌面环境,使用下面这行:
# exec /usr/bin/gnome-session
保存文件(Ctrl+O,回车),然后退出(Ctrl+X)。
# 给脚本添加执行权限
chmod +x ~/.vnc/xstartup
4.3 启动 VNC 服务器
# 启动 VNC 服务器(显示号 :1,对应端口 5901)
vncserver :1
# 启动其他显示号(如果需要)
# vncserver :2 # 端口 5902
# vncserver :3 # 端口 5903
首次启动会创建日志文件和进程 ID 文件。
VNC 端口说明:显示号 :1 对应端口 5901,:2 对应 5902,以此类推。
五、防火墙配置
如果系统启用了防火墙(ufw),需要开放 VNC 端口:
# 开放 VNC 端口(根据你的显示号)
sudo ufw allow 5901/tcp
# 查看防火墙状态
sudo ufw status
六、管理 VNC 服务
6.1 停止 VNC 服务器
# 停止指定显示号的 VNC 服务
vncserver -kill :1
# 停止所有 VNC 服务
# vncserver -kill :*
# for display in $(vncserver -list | grep -oP ':\d+'); do vncserver -kill $display; done
6.2 重启 VNC 服务器
# 停止后重新启动
vncserver -kill :1
vncserver :1
6.3 查看运行中的 VNC 服务
# 列出当前用户运行的 VNC 服务
vncserver -list
七、设置 VNC 开机自启动
为了在系统重启后自动启动 VNC 服务,可以创建 systemd 服务。
7.1 创建 systemd 服务文件
# 创建服务文件
sudo nano /etc/systemd/system/vncserver@.service
添加以下内容(替换 YOUR_USERNAME 为你的用户名):
[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=YOUR_USERNAME
Group=YOUR_USERNAME
WorkingDirectory=/home/YOUR_USERNAME
PIDFile=/home/YOUR_USERNAME/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
保存文件后,执行以下命令:
# 替换 YOUR_USERNAME
sed -i 's/YOUR_USERNAME/你的用户名/g' /etc/systemd/system/vncserver@.service
# 重新加载 systemd
sudo systemctl daemon-reload
# 启用并启动 VNC 服务(显示号 :1)
sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@1.service
# 检查服务状态
sudo systemctl status vncserver@1.service
八、使用 VNC 客户端连接
可以使用各种 VNC 客户端连接到服务器。以下是常用客户端:
8.1 命令行客户端
# Ubuntu/Debian 安装
sudo apt install -y tigervnc-viewer
# 连接到服务器
vncviewer <服务器IP>:5901
# 例如:vncviewer 192.168.1.100:5901
8.2 图形化客户端
常用 VNC 客户端:
• RealVNC Viewer - 跨平台支持
• TigerVNC Viewer - 轻量级
• UltraVNC - Windows 平台
• Remmina - Linux 远程桌面工具
九、安全增强(使用 SSH 隧道)
为了安全起见,建议通过 SSH 隧道访问 VNC,而不是直接暴露 VNC 端口。
9.1 创建 SSH 隧道
# 在本地机器执行,将本地端口转发到远程服务器
ssh -L 5901:localhost:5901 用户名@服务器IP
# 示例
ssh -L 5901:localhost:5901 user@192.168.1.100
SSH 隧道建立后,在本地 VNC 客户端连接 localhost:5901 即可。
9.2 使用 SSH 密钥认证
# 生成 SSH 密钥(如果没有)
ssh-keygen -t rsa -b 4096
# 将公钥复制到服务器
ssh-copy-id 用户名@服务器IP
# 以后可以使用密钥登录
ssh -i ~/.ssh/id_rsa -L 5901:localhost:5901 用户名@服务器IP
十、常见问题排查
10.1 VNC 无法连接
可能的原因和解决方法:
• 检查 VNC 服务是否运行:vncserver -list
• 检查防火墙是否开放端口:sudo ufw status
• 检查服务器 IP 地址是否正确
• 查看日志文件:cat ~/.vnc/*.log
10.2 桌面显示异常
如果桌面环境无法正常显示,检查 xstartup 脚本配置。
10.3 密码错误
# 重置 VNC 密码
vncpasswd
# 停止并重启 VNC 服务
vncserver -kill :1
vncserver :1
十一、性能优化建议
• 降低分辨率:在 VNC 启动命令中使用 -geometry 参数,如 -geometry 1024x768
• 降低颜色深度:使用 -depth 16 或 -depth 8
• 使用有线网络:避免使用 Wi-Fi 以获得更稳定的连接
• 关闭不必要的服务:减少桌面环境的资源占用
总结
在 Ubuntu 22.04 上安装和配置 VNC 服务器的步骤总结:
1. 安装桌面环境(服务器版)
2. 安装 TigerVNC 服务器
3. 配置 xstartup 启动脚本
4. 设置 VNC 密码
5. 启动 VNC 服务并配置防火墙
6. 使用 VNC 客户端连接
7. (可选)配置开机自启动
8. (推荐)通过 SSH 隧道增强安全性
通过以上步骤,你就可以在本地远程访问 Ubuntu 桌面环境了。
本文基于 Ubuntu 22.04 LTS 编写,其他 Ubuntu 版本步骤类似。如有问题欢迎留言讨论!






