在 Ubuntu 上用 VNC 一定要做安全加固,否则很容易被扫描、爆破甚至被入侵。下面按「必须做 / 推荐做 / 高级」给你一套实用方案,适合个人和服务器环境。
最危险做法:
公网 IP:5900 → VNC
✅ 正确做法:
以 tigervnc / x11vnc / tightvnc 为例:
# ~/.vnc/config
localhost
或启动参数:
vncserver :1 -localhost
ssh -L 5901:localhost:5901 user@your_server_ip
然后 VNC 客户端连接:
localhost:5901
✅ 优点:
vncpasswd
⚠️ 注意:
❌ 不要用 root 启动 VNC
✅ 用普通用户:
su - youruser
vncserver :1
默认端口:
5900 + 显示号
可改为:
vncserver :5
防火墙只放行 SSH(22):
sudo ufw allow 22
sudo ufw enable
如果必须开放 VNC 端口(不推荐):
sudo ufw allow from 1.2.3.4 to any port 5901
TigerVNC 支持 TLS:
vncserver :1 -SecurityTypes TLSVnc
客户端需支持 TLS(RealVNC / TigerVNC Viewer)
x11vnc -display :0 -localhost -nopw -forever
通过 SSH 隧道访问当前桌面
适合远程管理:
常用于:
❌ 直接把 5900 暴露在公网
❌ 使用默认密码
❌ root 运行 VNC
❌ 不更新系统
❌ 使用老旧 VNC(RealVNC < 6)
✅ 最佳实践方案
普通用户
+ VNC 只监听 localhost
+ SSH 隧道
+ 强密码
+ 防火墙只开 22
你可以直接说:
我的是 Ubuntu 22.04 服务器 / 桌面,想远程桌面