在 Ubuntu 上给 VNC 加密,常见做法有 VNC 自带加密、SSH 隧道加密、反向代理 + TLS 三类。下面按推荐程度给你讲。
适合:个人远程、服务器管理
VNC 本身不加密,但通过 SSH 端口转发,所有流量都走加密通道。
sudo apt install tigervnc-standalone-server
vncserver :1
在 本地电脑 执行:
ssh -L 5901:localhost:5901 user@ubuntu_ip
保持 SSH 连接不要关。
localhost:5901✅ 数据全程加密
❌ 不暴露 VNC 端口到公网
vncserver -SecurityTypes TLSVnc :1
连接时客户端必须支持加密(如 TigerVNC Viewer)
⚠️ 注意:
适合:多用户、Web 访问
server {
listen 443 ssl;
ssl_certificate /path/fullchain.pem;
ssl_certificate_key /path/privkey.pem;
location /websockify {
proxy_pass http://127.0.0.1:6080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
配合:
websockify --web /usr/share/novnc 6080 localhost:5901
| 场景 | 推荐方案 |
|---|---|
| 个人远程 | SSH 隧道 |
| 内网使用 | VNC TLS |
| 公网多用户 | Nginx + TLS |
| 图形化管理 | noVNC |
如果你愿意,可以告诉我:
我可以直接给你一套可复制的配置。