Ubuntu VNC加密传输数据的方法
TightVNC支持通过SSL/TLS证书实现数据加密,步骤如下:
sudo apt update && sudo apt install tightvncserver
命令安装。sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/vnc/ssl.key -out /etc/vnc/ssl.crt
(按提示输入信息,如国家、域名等)。/etc/vnc.conf
文件(若不存在则新建),添加以下内容启用SSL:[TightVNC]
ssl = true
ssl_key = /etc/vnc/ssl.key
ssl_cert = /etc/vnc/ssl.crt
vncserver :1
(:1
表示显示号,对应端口5901),首次运行需设置VNC密码。vnc://your_server_ip:5901
,并勾选“SSL”选项建立加密连接。SSH隧道通过加密SSH通道转发VNC流量,无需修改VNC服务器配置,安全性高:
sudo apt install openssh-server
;启动服务并设置开机自启:sudo systemctl start ssh && sudo systemctl enable ssh
。your_username
为服务器用户名,your_server_ip
为服务器IP):ssh -L 5901:localhost:5901 your_username@your_server_ip
localhost:5901
,通过SSH隧道安全访问VNC服务器(需提前在服务器上设置VNC密码,如vncpasswd
)。TigerVNC支持原生SSL加密,配置步骤如下:
sudo apt update && sudo apt install tigervnc-standalone-server tigervnc-common
安装。/etc/ssl/private/vnc.key
和/etc/ssl/certs/vnc.crt
)。~/.vnc/xstartup
文件(用户目录下的.vnc
文件夹),添加以下内容启用SSL(替换证书路径和用户名):#!/bin/sh
exec /usr/bin/tigervncserver -geometry 1920x1080 -depth 24 -localhost no -rfbauth /home/your_username/.vnc/passwd -rfbport 5900 -ssl -cert /etc/ssl/certs/vnc.crt -key /etc/ssl/private/vnc.key
确保脚本有执行权限:chmod +x ~/.vnc/xstartup
。vncserver :1
,首次运行需设置VNC密码。localhost:5900
,选择“SSL”选项连接。Stunnel是一款通用SSL隧道工具,可将VNC流量封装在SSL中:
sudo apt install tightvncserver stunnel4
安装。/etc/ssl/private/vnc.key
和/etc/ssl/certs/vnc.crt
)。/etc/stunnel/stunnel.conf
文件,添加以下内容(监听5900端口,转发到本地5900端口):[vnc]
accept = 5900
connect = 127.0.0.1:5900
cert = /etc/ssl/certs/vnc.crt
key = /etc/ssl/private/vnc.key
verify = 0
sudo systemctl start stunnel4 && sudo systemctl enable stunnel4
启动Stunnel;再运行vncserver :1
启动VNC服务器。localhost:5900
,通过Stunnel建立的SSL隧道连接。