一、前置准备
sudo apt install xfce4)。二、服务器端安装TigerVNC Server 根据Linux发行版选择对应命令安装:
sudo apt update && sudo apt install tigervnc-standalone-server tigervnc-xorg-extension -y
sudo yum install tigervnc-server -y # CentOS 7及以下
sudo dnf install tigervnc-server -y # CentOS 8+/Fedora
三、配置VNC密码
在服务器上切换至需要远程登录的用户(如ubuntu),运行以下命令设置密码(最多8位,区分大小写):
vncpasswd
输入密码后确认,密码会加密保存至~/.vnc/passwd(与系统密码无关)。
四、定制桌面启动配置
编辑xstartup文件(关键步骤,决定远程桌面环境):
打开用户目录下的.vnc/xstartup文件:
nano ~/.vnc/xstartup
根据桌面环境修改内容(以下为常见配置):
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 &
#!/bin/sh
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
exec /etc/X11/Xsession ubuntu-xsession &
#!/bin/sh
exec startplasma-x11 &
保存后赋予执行权限:
chmod +x ~/.vnc/xstartup
创建系统服务(实现开机自启):
以用户ubuntu、显示编号:1(对应端口5901)为例,复制模板并修改:
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
sudo nano /etc/systemd/system/vncserver@:1.service
将<USER>替换为实际用户名(如ubuntu),修改ExecStart行(添加分辨率、颜色深度):
[Service]
Type=forking
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu
ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :
ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24 -localhost no
ExecStop=/usr/bin/vncserver -kill :1
PIDFile=/home/ubuntu/.vnc/%H:1.pid
[Install]
WantedBy=multi-user.target
保存后重载systemd并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable vncserver@:1.service # 开机自启
sudo systemctl start vncserver@:1.service # 立即启动
五、配置防火墙允许访问
sudo ufw allow 5901/tcp # 5901是:1对应的端口(5900+显示编号)
sudo ufw reload
sudo firewall-cmd --permanent --add-port=5901/tcp
sudo firewall-cmd --reload
sudo systemctl stop firewalld # CentOS
sudo ufw disable # Ubuntu
六、客户端连接
服务器IP:5901 # 如192.168.1.100:5901
七、常见问题排查
~/.vnc/xstartup文件是否有语法错误,确保桌面环境命令正确(如startxfce4而非xfce4-session);若仍黑屏,尝试删除~/.vnc目录下所有文件(除xstartup外)并重启服务。netstat -tulnp | grep 5901检查服务是否监听端口。vncpasswd重新设置密码,确保密码长度≥6位。八、进阶优化(可选)
ssh -L 5901:localhost:5901 -N -f -l 服务器用户名 服务器IP
然后在VNC Viewer中连接localhost:5901。vncserver命令中添加-depth 16(降低颜色深度)或-compresslevel 9(提高压缩比),适合网速较慢的环境。vncserver命令为vncserver :1 -localhost no -geometry 1920x1080 -depth 24 -alwaysshared yes。