在 CentOS 上修改 VNC 端口,通常取决于你使用的是 TigerVNC 还是 x11vnc,以及是 临时修改 还是 永久修改。下面以 最常见的情况(TigerVNC + systemd) 为例说明。
VNC 默认端口规则:
| 显示号 | VNC 端口 | 说明 |
|---|---|---|
| :1 | 5901 | 默认第一个 VNC 会话 |
| :2 | 5902 | 第二个 |
| :N | 5900+N | 以此类推 |
所以 修改端口 = 修改显示号
ps -ef | grep vnc
或
ss -lntp | grep 590
假设当前是 :1:
sudo systemctl stop vncserver@:1
例如:把 5901 → 5905
sudo cp /etc/systemd/system/vncserver@:1.service \
/etc/systemd/system/vncserver@:5.service
编辑新文件:
sudo vi /etc/systemd/system/vncserver@:5.service
确认内容中 没有硬编码端口,一般只需确认:
ExecStart=/usr/bin/vncserver %i
sudo systemctl daemon-reload
sudo systemctl start vncserver@:5
sudo systemctl enable vncserver@:5
防火墙放行:
sudo firewall-cmd --add-port=5905/tcp --permanent
sudo firewall-cmd --reload
-rfbportvncserver :1 -rfbport 5910
⚠️ 注意:
-rfbport 时 不要再用 systemd 管理x11vnc -rfbport 5902
或写入启动脚本:
x11vnc -rfbport 5902 -forever -shared
ss -lntp | grep 590
VNC 客户端连接:
IP:5905
lsof -i:5901
setenforce 0 # 临时关闭(测试用)
改端口 = 改显示号
vncserver :5 # 5905
如果你愿意,可以告诉我:
我可以给你 完全针对你环境的命令。