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隧道連接。