温馨提示×

如何给Ubuntu VNC加密

小樊
51
2026-09-10 03:01:08
栏目: 网络安全

在 Ubuntu 上给 VNC 加密,常见做法有 VNC 自带加密、SSH 隧道加密、反向代理 + TLS 三类。下面按推荐程度给你讲。


✅ 最推荐:SSH 隧道加密(简单、安全、零额外配置)

适合:个人远程、服务器管理

原理

VNC 本身不加密,但通过 SSH 端口转发,所有流量都走加密通道。

步骤

1️⃣ Ubuntu 上启用 VNC(以 TigerVNC 为例)

sudo apt install tigervnc-standalone-server
vncserver :1

2️⃣ 客户端用 SSH 建立隧道

在 本地电脑 执行:

ssh -L 5901:localhost:5901 user@ubuntu_ip

保持 SSH 连接不要关。

3️⃣ VNC 客户端连接

  • 地址:localhost:5901
  • 密码:VNC 密码

✅ 数据全程加密
❌ 不暴露 VNC 端口到公网


✅ 次推荐:VNC 自带加密(TigerVNC / RealVNC)

TigerVNC(支持 TLS)

vncserver -SecurityTypes TLSVnc :1

连接时客户端必须支持加密(如 TigerVNC Viewer)

⚠️ 注意:

  • 旧版 VNC(如 tightvnc)不支持加密
  • 部分客户端不兼容

✅ 企业级:Nginx / Apache + TLS 反向代理

适合:多用户、Web 访问

思路

  • VNC → WebSocket
  • Nginx 配置 HTTPS

示例(noVNC + TLS)

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

❌ 不推荐

  • 直接暴露 5900 端口
  • 仅用 VNC 密码(无加密)

总结建议

场景 推荐方案
个人远程 SSH 隧道
内网使用 VNC TLS
公网多用户 Nginx + TLS
图形化管理 noVNC

如果你愿意,可以告诉我:

  • 用的是 哪种 VNC(tigervnc / tightvnc / realvnc)
  • 是否 公网 IP
  • 是否要 手机/网页访问

我可以直接给你一套可复制的配置。

0 踩