在 Debian 上启用 VNC 加密(含 TLS/SSL) 的方式,取决于你使用的是哪一款 VNC Server。下面按 最常用方案 给你一个完整、安全、可实操的指南。
✅ 推荐使用:
❌ 不推荐:
sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common
vncpasswd
密码最多 8 位,用于 认证阶段
TigerVNC 支持三种安全类型:
| 模式 | 说明 |
|---|---|
| None | 无加密 ❌ |
| VncAuth | 仅密码,无加密 ❌ |
| TLSVnc | TLS 加密 + 密码 ✅ 推荐 |
sudo mkdir -p /etc/vnc-tls
sudo openssl req -x509 -nodes -days 3650 \
-newkey rsa:2048 \
-keyout /etc/vnc-tls/vnc.key \
-out /etc/vnc-tls/vnc.crt
填写信息可随意,主要是生成:
vnc.keyvnc.crtvncserver :1 \
-SecurityTypes TLSVnc \
-X509Key /etc/vnc-tls/vnc.key \
-X509Cert /etc/vnc-tls/vnc.crt
✅ 此时 VNC 流量 完全加密
查看端口:
5901(:1)✅ 推荐客户端:
连接时选择:
TLSsudo apt install x11vnc
x11vnc -storepasswd
openssl req -x509 -nodes -days 3650 \
-newkey rsa:2048 \
-keyout ~/.x11vnc.key \
-out ~/.x11vnc.crt
x11vnc \
-display :0 \
-rfbauth ~/.x11vnc/passwd \
-ssl ~/.x11vnc.pem \
-forever \
-shared
-ssl启用加密(TLS)
如果你 无法用 TLS:
ssh -L 5901:localhost:5901 user@debian_ip
然后连接:
localhost:1
⚠️ VNC 本身仍无加密,依赖 SSH
✅ 只监听本地更安全:
vncserver :1 -localhost
✅ 防火墙只放行必要端口:
sudo ufw allow from 信任IP to any port 5901
✅ 不要直接暴露 5900–5910 到公网
用客户端连接时查看:
TLSNone / VncAuth或用:
ss -lntp | grep 590
❌ “No matching security types”
❌ VNC 能连但无 TLS
-SecurityTypes TLSVncDebian 启用 VNC 加密 = TigerVNC + TLS 证书(最安全、最标准)
如果你愿意,可以告诉我:
我可以给你 一份完整 systemd + TLS 自动启动配置。