在 Ubuntu 22.04|20.04|18.04 上安装和配置 VNC 服务器

概述

VNC(Virtual Network Computing)通过 RFB 协议实现远程控制。客户端/服务器模型:

  • VNC 客户端:本地计算机
  • VNC 服务器:远程系统,传输显示画面副本

安装 VNC 服务器

1
2
sudo apt update
sudo apt -y install tightvncserver

安装桌面环境

使用 Xfce 桌面环境:

1
sudo apt install xfce4 xfce4-goodies

配置 VNC 服务器

设置密码

1
2
3
vncpasswd
Password:
Verify:

启动 VNC 服务器

1
vncserver :1

输出示例:

1
2
3
4
New 'ubuntu-01:1 (user)' desktop is ubuntu-01:1
Creating default startup script /home/user/.vnc/xstartup
Starting applications specified in /home/user/.vnc/xstartup
Log file is /home/user/.vnc/ubuntu-01:1.log

终止 VNC 服务器

1
vncserver -kill :1

配置桌面环境

编辑 VNC 启动脚本:

1
vim ~/.vnc/xstartup

添加内容:

1
exec /usr/bin/startxfce4 &

启动参数说明

参数 含义 示例值
:1 显示编号 :1
-geometry 分辨率 800x600
-depth 颜色深度 24

启动示例:

1
vncserver :1 -geometry 800x600 -depth 24

连接 VNC 桌面

SSH 隧道

创建安全隧道:

1
ssh <username>@<vncserver-ip> -C -L 5901:127.0.0.1:5901

安装客户端

Ubuntu:

1
sudo apt install tigervnc-viewer

Arch Linux:

1
sudo pacman -S tigervnc

连接

SSH 隧道运行后,连接 localhost:5901,输入 VNC 密码。


配置 Systemd 服务

停止现有实例

1
vncserver -kill :1

创建服务文件

1
sudo vim /etc/systemd/system/vncserver@1.service

写入配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=Start TightVNC 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 替换为实际用户名。

启用服务

1
2
sudo systemctl daemon-reload
sudo systemctl enable --now vncserver@1

检查状态

1
systemctl status vncserver@1

安全建议

VNC 密码传输无加密,推荐使用:

  • VPN:加密连接,隐藏服务器位置
  • SSH 隧道:如上述配置
  • 防火墙:限制 5900 端口访问

总结

完成以下步骤即可在 Ubuntu 上运行 VNC 服务器:

  1. 安装 tightvncserver 和 Xfce 桌面
  2. 配置密码和 xstartup 脚本
  3. 设置 SSH 隧道保证连接安全
  4. 配置 Systemd 服务实现开机自启