前言

虚拟网络计算 (VNC) 是一个图形桌面共享系统,允许您使用键盘和鼠标远程控制另一台计算机。它是 Microsoft 远程桌面 协议 (RDP)的开源替代方案。

安装桌面环境

Ubuntu 服务器是从命令行管理的,默认情况下没有安装桌面环境。如果您运行的是桌面版 Ubuntu,请跳过此步骤。
Ubuntu 存储库中有各种可用的桌面环境。一种选择是安装 Gnome,这是 Ubuntu 20.04 中的默认桌面环境。另一种选择是安装 Xfce 。它是一个快速、稳定和轻量级的桌面环境,非常适合在远程服务器上使用。

在本指南中,我们将安装 Xfce。以具有 sudo 权限的用户身份输入以下命令 :

1
2
sudo apt update
sudo apt install xfce4 xfce4-goodies

安装 VNC Server

Ubuntu 存储库中有几种不同的 VNC 服务器可用,例如 TightVNC 、TigerVNC 和 x11vnc 。每个 VNC 服务器在速度和安全性方面都有不同的优势和劣势。

我们将安装 TigerVNC。它是一个积极维护的高性能 VNC 服务器。键入以下命令以安装软件包:

1
sudo apt install tigervnc-standalone-server

配置 VNC Server

设置 VNC Server 密码

使用 vncpasswd 命令设置用户密码。运行以下命令时不要使用 sudo:

1
vncpasswd

系统将提示您输入并确认密码以及是否将其设置为仅查看密码。如果您选择设置仅查看密码,用户将无法使用鼠标和键盘与 VNC 实例交互。

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
密码文件存储在~/.vnc 目录中,如果不存在则创建该目录

修改 xstartup 文件

1
2
3
4
5
6
cat > ~/.vnc/config << EOF
session=xfce
geometry=1920x1080
localhost=no
alwaysshared
EOF

设置 VNC Server 的开机启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
cat > /etc/systemd/system/vncserver@.service << EOF
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
PAMName=login
User=enwaiax
WorkingDirectory=/home/enwaiax/
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1920x1080 --localhost no -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@1.service

说明: 符号 1 后面的数字 @ 定义了 VNC 服务将在其上运行的显示端口。这意味着 VNC 服务器将侦听端口5901