如何在Ubuntu上配置TigerVNC访问权限
首先确保系统已安装图形化环境(如Ubuntu Desktop自带GNOME,若使用轻量级桌面如XFCE需额外安装),然后安装TigerVNC服务器:
sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common -y
若使用非GNOME桌面(如XFCE),需补充安装:
sudo apt install xfce4 xfce4-goodies -y # 以XFCE为例
切换至需使用VNC的非root用户(root用户连接VNC存在安全隐患),执行vncpasswd命令设置密码(6-8位,区分大小写):
su - your_username # 替换为你的用户名
vncpasswd
按提示输入密码并确认,可选“是否设置仅查看密码”(建议选“n”,否则远程连接只能看不能操作)。
创建并编辑~/.vnc/xstartup文件(用户家目录下的.vnc文件夹需手动创建),用于定义VNC启动时的桌面环境:
mkdir -p ~/.vnc
nano ~/.vnc/xstartup
关键配置(根据桌面环境调整):
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources # 加载X资源(可选)
exec startxfce4 & # 若使用XFCE桌面;若用GNOME,替换为gnome-session &
&让桌面环境在后台运行,否则VNC会话会卡死;chmod +x ~/.vnc/xstartup。首次启动需指定显示端口(如:1对应端口5901,:2对应5902),并通过-localhost no参数允许远程访问(若仅需本机访问,可省略此参数):
vncserver :1 -geometry 1920x1080 -depth 24 -localhost no
:1:显示编号(对应端口5901,计算公式:5900 + 显示编号);-geometry:设置远程桌面分辨率;-depth:设置颜色深度(24位色更清晰)。服务器IP:5901(如192.168.1.100:5901),输入之前设置的密码即可登录。Ubuntu默认使用ufw(Uncomplicated Firewall)管理防火墙,需开放VNC对应端口(如5901):
sudo ufw allow 5901/tcp # 开放5901端口(对应:1显示)
sudo ufw enable # 启用防火墙(若未启用)
sudo ufw status # 检查规则是否生效(应显示“5901/tcp ALLOW”)
为确保服务器重启后VNC服务自动启动,需创建systemd用户服务:
mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/vncserver@.service
粘贴以下内容(替换your_username和显示编号:1):
[Unit]
Description=TigerVNC Service for display %i
After=network.target
[Service]
Type=forking
User=your_username
Group=your_username
WorkingDirectory=/home/your_username
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1920x1080 -depth 24 -localhost no
ExecStop=/usr/bin/vncserver -kill %i
[Install]
WantedBy=default.target
保存后执行以下命令启用并启动服务:
systemctl --user daemon-reload
systemctl --user enable vncserver@1.service # 启用开机自启
systemctl --user start vncserver@1.service # 立即启动服务
ssh -L 5902:localhost:5901 your_username@server_ip
然后通过VNC客户端连接localhost:5902(端口5902为本地转发端口,5901为服务器VNC端口)。/etc/services文件,将vnc-server的默认端口5900/tcp修改为其他端口(如5902/tcp),降低被扫描攻击的风险。通过以上步骤,即可在Ubuntu上完成TigerVNC的权限配置,实现安全的远程桌面访问。