TigerVNC的默认端口遵循“5900+显示号”的规则:显示号:0对应端口5900(通常为本地登录预留),显示号:1对应端口5901,显示号:2对应端口5902,依此类推。修改端口本质是修改VNC服务器的显示号或直接指定端口参数。
若已启动VNC服务器(如:1对应端口5901),需先停止该会话,避免端口冲突:
vncserver -kill :1
(将:1替换为你当前使用的显示号)
通过调整显示号间接修改端口,步骤如下:
:2(对应端口5902),命令如下:vncserver :2
系统会提示“New ‘X’ desktop is your_hostname:2”,表示端口5902已启用。netstat或ss命令检查端口监听状态:ss -tulnp | grep 5902
若输出中包含5902/tcp,说明端口修改成功。若需更灵活地指定端口(而非依赖显示号),可通过-rfbport参数强制设置端口:
vncserver -rfbport 5903 :1
(此命令将显示号:1绑定为端口5903,打破默认规则)
注意:使用此方法时,需确保端口未被其他服务占用(可通过netstat -tulnp | grep 5903检查)。
若系统启用了ufw防火墙,需允许新端口通过:
sudo ufw allow 5902/tcp # 将5902替换为新端口
sudo ufw reload
(若使用firewalld,命令为:sudo firewall-cmd --permanent --add-port=5902/tcp && sudo firewall-cmd --reload)
若通过systemd服务实现开机自启,需编辑对应的服务文件(如/etc/systemd/system/vncserver@:1.service),将其中的显示号或端口参数同步修改:
sudo nano /etc/systemd/system/vncserver@:1.service
ExecStart和ExecStartPre中的显示号(如将:1改为:2):ExecStart=/usr/bin/vncserver :2
ExecStartPre=/usr/bin/vncserver -kill :2
systemd配置并重启服务:sudo systemctl daemon-reload
sudo systemctl restart vncserver@:2.service
使用VNC客户端(如TigerVNC Viewer、RealVNC)连接服务器时,需将地址改为“服务器IP+新端口”,例如:
192.168.1.100:5902
输入之前设置的VNC密码即可连接。
提示:修改端口后,需告知所有需要连接的客户端新的端口号,避免连接失败。若遇到连接问题,可通过vncserver -list查看当前运行的VNC会话及端口,或查看日志文件~/.vnc/*.log排查错误。