Ubuntu VNC加密传输数据的常用方法
SSH隧道是最常用的VNC加密方式,通过SSH的加密通道传输VNC流量,无需修改VNC服务器配置,且能隐藏VNC端口,防止端口扫描攻击。
步骤:
sudo apt update && sudo apt install openssh-server -y
sudo systemctl start ssh && sudo systemctl enable ssh
5901端口映射到远程服务器的5901端口(localhost:5901表示隧道终点为远程服务器的本地回环),替换your_username和remote_server_ip为实际值:ssh -L 5901:localhost:5901 your_username@remote_server_ip
localhost:5901,无需额外配置加密选项,SSH会自动加密所有传输数据。TightVNC支持VeNCrypt和TLSVnc加密协议,可通过配置文件启用,适合需要轻量级加密的场景。
步骤:
sudo apt update && sudo apt install tightvncserver -y
vncpasswd
~/.vnc/config文件):VeNCrypt和TLSVnc加密,保留VncAuth密码验证):SecurityTypes VeNCrypt,TLSVnc,VncAuth
-kill :1表示终止显示号为1的实例):tightvncserver -kill :1 && tightvncserver :1
连接时,VNC客户端需选择对应加密协议(如RealVNC客户端勾选“Encrypt connection”)。TigerVNC支持SSL/TLS加密,需生成证书并配置服务器,适合对安全性要求高的环境(如企业内部网络)。
步骤:
sudo apt update && sudo apt install tigervnc-standalone-server tigervnc-common -y
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/vnc/ssl.key -out /etc/vnc/ssl.crt
~/.vnc/xstartup文件):vncserver :1 -localhost no -rfbauth ~/.vnc/passwd -SecurityTypes TLSVnc,X509Vnc -sslCert /etc/vnc/ssl.crt -sslKey /etc/vnc/ssl.key
chmod +x ~/.vnc/xstartup
vncserver -kill :1 && vncserver :1
连接时,客户端需选择“Use SSL/TLS”选项(如RealVNC客户端)。RealVNC提供商业版和企业版,内置SSL/TLS加密,配置简单,适合需要商业支持的场景(开源版支持有限)。
步骤:
sudo apt update && sudo apt install realvnc-vnc-server realvnc-viewer -y
vncserver-config),进入“Security”选项卡,勾选“Enable SSL/TLS encryption”,选择证书(自签名或CA签发)并保存。sudo systemctl restart realvnc-server
连接时,客户端会自动使用SSL/TLS加密。sudo ufw allow 22/tcp && sudo ufw allow 5901/tcp