步骤 1:安装 TigerVNC 和桌面环境
更新系统包确保系统包是最新的,运行以下命令:
sudo apt update && sudo apt upgrade -y
安装桌面环境 Ubuntu Server 默认没有图形界面,推荐安装轻量级桌面环境(如 XFCE)以减少资源占用:
sudo apt install xfce4 xfce4-goodies -y
安装 TigerVNC 服务器和相关组件:
sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-xorg-extension -y
步骤 2:配置 TigerVNC 服务器
设置 VNC 密码 为 VNC 连接设置密码(每个用户需要单独设置):
vncpasswd
输入并确认密码(6-8 位字符)。可选择是否设置只读密码(一般选 n)。
启动 VNC 服务器
启动一个 VNC 会话,指定显示编号(例如 :1):
vncserver :1 -geometry 1280x800 -depth 24 -localhost no
-geometry 1280x800:设置分辨率,可根据需要调整。
-depth 24:设置 24 位颜色深度。
-localhost no:允许远程连接(后续会通过 SSH 隧道增强安全性)。
配置 VNC 桌面环境 认情况下,VNC 可能不会正确加载桌面环境。编辑 ~/.vnc/xstartup 文件以使用 XFCE:
vim ~/.vnc/xstartup
输入以下内容:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XDG_SESSION_TYPE=x11
export GNOME_SHELL_SESSION_MODE=ubuntu
startxfce4
保存后,添加执行权限:
chmod +x ~/.vnc/xstartup
重启 VNC 服务器 如果 VNC 服务器已运行,先关闭:
vncserver -kill :1
然后重新启动:
vncserver :1 -geometry 1280x800 -depth 24 -localhost no
配置为 systemd 服务(可选,自动启动) 为确保 VNC 服务器在系统启动时自动运行,创建 systemd 服务:
sudo nano /etc/systemd/system/vncserver@.service
输入以下内容(将 YOUR_USERNAME 替换为实际用户名):
[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target
[Service]
Type=simple
User=YOUR_USERNAME
PAMName=login
PIDFile=/home/YOUR_USERNAME/.vnc/%H:%i.pid
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -fg -depth 24 -geometry 1280x800 -localhost no :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
保存后,重新加载 systemd 并启用服务:
sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@1.service
步骤 3:通过 TigerVNC Viewer 连接
在客户端安装 TigerVNC Viewer
ubuntu/Debian:
sudo apt install tigervnc-viewer
Windows/macOS:从 TigerVNC 官网 下载并安装 TigerVNC Viewer。
配置 SSH 隧道(推荐,增强安全性)
为安全起见,建议通过 SSH 隧道连接 VNC 服务器。假设服务器 IP 为 your_server_ip,运行以下命令:
ssh -L 5901:localhost:5901 -N -f -l YOUR_USERNAME your_server_ip
这会将本地端口 5901 转发到服务器的 VNC 端口 5901。
使用 TigerVNC Viewer 连接
打开 TigerVNC Viewer,输入:
localhost:5901
输入之前设置的 VNC 密码,连接后即可看到远程桌面。
步骤 4:通过浏览器连接(使用 noVNC)
要通过浏览器访问 VNC,需要安装 noVNC,一个基于 HTML5 的 VNC 客户端。
安装 noVNC 下载并配置 noVNC:
sudo apt install git -y
git clone https://github.com/novnc/noVNC.git
cd noVNC
./utils/novnc_proxy --vnc localhost:5901 --listen 6080
novnc_proxy 将 VNC 服务器的 5901 端口代理到本地 6080 端口。
配置防火墙
如果服务器启用了防火墙(如 UFW),允许 6080 端口:
sudo ufw allow 6080
通过浏览器访问
在本地电脑的浏览器中输入:
http://your_server_ip:6080/vnc.html
点击“Connect”,输入 VNC 密码,即可通过浏览器访问远程桌面。
通过 SSH 隧道访问(更安全)
如果希望通过 SSH 隧道访问 noVNC,运行:
ssh -L 6080:localhost:6080 -N -f -l YOUR_USERNAME your_server_ip
然后在浏览器中访问:
http://localhost:6080/vnc.html
步骤 5:安全注意事项
使用 SSH 隧道:避免直接开放 5901 端口,始终使用 SSH 隧道以加密连接。
防火墙设置:仅允许必要的端口(如 22 用于 SSH,6080 用于 noVNC):
sudo ufw allow 22
sudo ufw allow 6080
sudo ufw enable
强密码:确保 VNC 密码足够强。 TLS 加密(可选):TigerVNC 支持 TLS 加密,可参考官方文档进一步配置。
步骤 6:故障排除
黑屏或灰屏:
确保 ~/.vnc/xstartup 配置正确并指向 XFCE。
检查是否使用 Wayland(Ubuntu 24.04 默认使用 Wayland,可能与 VNC 不兼容)。禁用 Wayland:
sudo nano /etc/gdm3/custom.conf
取消注释 WaylandEnable=false,```
然后重启:
sudo systemctl restart gdm
连接失败:
确认 VNC 服务器正在运行:vncserver -list。 检查端口是否被占用或防火墙是否阻止连接。
noVNC 无法连接: 确保 novnc_proxy 正在运行。检查 6080 端口是否开放。