在安装任何软件前,建议先更新系统软件包索引,确保后续安装的软件是最新版本,避免依赖冲突。
打开终端(快捷键 Ctrl+Alt+T),执行以下命令:
sudo apt update
通过Ubuntu官方软件源安装TigerVNC服务器(tigervnc-standalone-server)及通用组件(tigervnc-common):
sudo apt install tigervnc-standalone-server tigervnc-common -y
安装过程中会提示确认依赖包安装,输入 y 并回车即可。
VNC连接需要密码验证,确保远程访问安全。执行以下命令设置密码:
vncpasswd
Would you like to enter a view-only password?),输入 n 并回车(避免限制操作权限)。.vnc 文件夹中(~/.vnc/passwd)。TigerVNC启动时需要加载桌面环境配置,需手动创建或修改 ~/.vnc/xstartup 文件(指定使用Ubuntu默认的GNOME桌面)。
执行以下命令创建并编辑文件:
nano ~/.vnc/xstartup
将以下内容完整复制到编辑器中(注意不要遗漏或修改任何一行):
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
exec gnome-session
Ctrl+O 保存文件,按 Ctrl+X 退出nano编辑器。chmod +x ~/.vnc/xstartup
首次启动时,需指定显示编号(如 :1,对应端口 5901,计算公式:5900 + 显示编号)。执行以下命令:
vncserver :1
n 并回车;New 'X' desktop is 192.168.1.100:1)。vncserver -kill :1
为确保系统重启后VNC服务器自动运行,需创建systemd服务文件。
执行以下命令创建并编辑服务文件:
sudo nano /etc/systemd/system/vncserver@:1.service
将以下内容替换为实际用户名(将 your_username 改为你的Ubuntu登录用户名)后保存:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=your_username
Group=your_username
WorkingDirectory=/home/your_username
PIDFile=/home/your_username/.vnc/%H:1.pid
ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :1 -depth 24 -geometry 1280x800
ExecStop=/usr/bin/vncserver -kill :1
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable vncserver@:1.service
sudo systemctl start vncserver@:1.service
若系统启用了防火墙(如UFW),需允许VNC端口的流量通过(默认端口为 5901,对应显示编号 :1)。
执行以下命令:
sudo ufw allow 5901/tcp
sudo ufw enable # 若未启用防火墙,可忽略此命令
在另一台计算机(如Windows、Mac或另一台Ubuntu)上,安装TigerVNC Viewer或其他兼容VNC客户端(如RealVNC Viewer)。
服务器IP:显示编号,如 192.168.1.100:1);~/.vnc/xstartup 文件是否正确配置(需包含 exec gnome-session 或对应桌面环境的启动命令),并确保文件有执行权限(chmod +x ~/.vnc/xstartup)。5901),或使用 netstat -ntupl | grep vnc 检查VNC服务是否监听正确端口(tcp 0 0 0.0.0.0:5901)。通过以上步骤,即可在Ubuntu上成功配置并使用TigerVNC实现远程桌面访问。