阅读量:88
Ubuntu TigerVNC支持加密连接,可通过TLS/SSL证书加密或SSH隧道两种主要方式实现,以下是具体说明:
一、TLS/SSL证书加密(原生支持)
TigerVNC原生支持通过SSL/TLS证书对传输数据进行加密,需完成“安装证书→配置服务器→启动加密连接”三个步骤:
- 安装TigerVNC服务器:
在Ubuntu终端运行以下命令,安装TigerVNC核心组件:sudo apt update && sudo apt install tigervnc-standalone-server tigervnc-common -y - 生成SSL证书:
使用OpenSSL生成自签名证书(有效期365天,密钥长度2048位),存储于系统证书目录:
(注:自签名证书需客户端信任,首次连接时会提示“不受信任的证书”,可选择“继续连接”。)sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vnc.key -out /etc/ssl/certs/vnc.crt - 配置TigerVNC启用加密:
编辑用户目录下的VNC启动脚本(~/.vnc/xstartup),添加-ssl参数及证书路径,指定加密类型:保存后赋予脚本执行权限:#!/bin/sh exec /usr/bin/tigervncserver -geometry 1920x1080 -depth 24 -localhost no \ -rfbauth /home/yourusername/.vnc/passwd -rfbport 5900 \ -ssl -cert /etc/ssl/certs/vnc.crt -key /etc/ssl/private/vnc.keychmod +x ~/.vnc/xstartup - 启动TigerVNC服务器:
运行vncserver :1(:1表示显示编号,对应端口5901)启动服务,此时VNC连接将通过SSL/TLS加密。 - 客户端连接:
使用支持SSL的VNC客户端(如RealVNC、TightVNC),输入vnc://your_server_ip:5900,并在客户端设置中启用“SSL/TLS加密”选项(部分客户端默认开启)。
二、SSH隧道加密(推荐增强方式)
通过SSH隧道将VNC流量转发至本地,实现“端到端”加密,无需修改VNC服务器配置,安全性更高:
- 安装并启动SSH服务:
若服务器未安装SSH,运行以下命令安装并启动:sudo apt install openssh-server -y sudo systemctl start sshd && sudo systemctl enable sshd - 创建SSH隧道:
在本地机器(如Windows/Mac/Linux)上运行以下命令,将本地5901端口映射至服务器localhost:5901(VNC实际端口为5900+显示编号,如:1对应5901):
(注:ssh -L 5901:localhost:5901 your_username@your_server_ipyour_username为服务器登录用户名,your_server_ip为服务器IP地址。) - 客户端连接:
在VNC客户端中输入127.0.0.1:5901,连接至本地隧道端口,此时VNC流量将通过SSH加密通道传输。
注意事项
- 证书选择:生产环境建议使用受信任的证书颁发机构(CA)签发的证书(如Let’s Encrypt),避免浏览器/客户端频繁提示“不受信任的证书”。
- 端口开放:若使用TLS/SSL加密,需确保防火墙允许VNC端口(默认
5900+显示编号)的入站流量;若使用SSH隧道,需允许SSH端口(默认22)的流量。 - 密码强度:通过
vncpasswd命令设置VNC登录密码时,需使用至少8位的复杂密码(包含大小写字母、数字、特殊字符),避免弱密码被暴力破解。