Ubuntu VNC远程控制计算机步骤
在需要远程控制的Ubuntu计算机上,打开终端并执行以下命令安装VNC服务器(以TigerVNC为例,兼容性好且性能优秀):
sudo apt update && sudo apt install tigervnc-standalone-server tigervnc-common -y
安装完成后,系统会提示确认软件包安装,输入Y并按回车键完成。
运行vncpasswd命令为当前用户设置VNC专用密码(至少6位,区分大小写):
vncpasswd
输入密码时,系统不会显示字符(保护隐私),确认密码后完成设置。此密码用于后续VNC客户端连接时的身份验证。
默认情况下,VNC启动的会话可能不符合日常使用习惯(如无桌面环境或界面简陋),需修改~/.vnc/xstartup文件(VNC启动脚本)以指定桌面环境(如GNOME、XFCE等)。以下以Ubuntu默认的GNOME桌面为例:
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
xstartup文件(使用nano或其他文本编辑器):nano ~/.vnc/xstartup
unset清除干扰环境变量,exec启动GNOME会话):#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /etc/X11/Xsession ubuntu-xsession
Ctrl+O→回车→Ctrl+X退出nano),并赋予可执行权限:chmod +x ~/.vnc/xstartup
注:若使用轻量级桌面环境(如XFCE),可将
exec行改为exec startxfce4(需提前安装xfce4:sudo apt install xfce4 xfce4-goodies)。
通过vncserver命令启动VNC服务,指定显示编号(如:1,对应端口号5901;:2对应5902,依此类推):
vncserver :1
首次启动时,系统会提示“New ‘X’ desktop is [IP]:1”(表示服务已启动)。若需停止服务,运行:
vncserver -kill :1
(将:1替换为实际的显示编号)。
若Ubuntu系统启用了防火墙(如ufw,默认开启),需开放VNC对应的端口(:1对应5901):
sudo ufw allow 5901/tcp
刷新防火墙规则使配置生效:
sudo ufw reload
注:若使用
firewalld(如CentOS),可运行sudo firewall-cmd --add-port=5901/tcp --permanent && sudo firewall-cmd --reload。
在另一台计算机(Windows、macOS或Linux均可)上安装VNC客户端(如RealVNC Viewer、TightVNC Viewer或Remmina),打开客户端并输入以下地址:
<Ubuntu计算机的IP地址>:1
例如,若Ubuntu的IP地址为192.168.1.100,则输入192.168.1.100:1。点击“连接”,输入之前设置的VNC密码,即可远程控制Ubuntu桌面。
若需要VNC服务器在Ubuntu系统启动时自动运行,可创建systemd服务文件:
sudo nano /etc/systemd/system/vncserver@.service
<USER>为你的Ubuntu用户名,%i为显示编号):[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=<USER>
Group=<USER>
WorkingDirectory=/home/<USER>
PIDFile=/home/<USER>/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1920x1080 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service  # :1对应显示编号
sudo systemctl start vncserver@1.service
此后,系统重启时会自动启动VNC服务(显示编号为1)。
ssh -L 5901:localhost:5901 <Ubuntu用户名>@<Ubuntu IP地址>
然后通过VNC客户端连接localhost:1即可。vncpasswd命令定期修改VNC密码,避免密码泄露。ufw)仅允许特定IP地址访问VNC端口(如sudo ufw allow from 192.168.1.0/24 to any port 5901)。