VNC服务的默认端口规则为5900 + 显示编号(n),其中n对应VNC会话的显示序号。例如:
:1)使用5901端口(5900+1);:2)使用5902端口(5900+2);UFW(Uncomplicated Firewall)是Debian系统默认的简化防火墙工具,操作便捷,适合大多数用户。
若未安装UFW,可通过以下命令安装并启动:
sudo apt update
sudo apt install ufw
sudo ufw enable # 启用UFW(系统重启后自动生效)
针对单个VNC会话(如:1,对应5901端口),执行:
sudo ufw allow 5901/tcp # 允许TCP协议的5901端口(VNC默认使用TCP)
若有多个VNC会话(如:1、:2),需为每个端口单独添加规则:
sudo ufw allow 5902/tcp # 允许第二个VNC会话的端口
为提升安全性,可仅允许特定IP地址访问VNC端口(如公司内网IP192.168.1.100),防止未授权访问:
sudo ufw deny in to any port 5901 proto tcp not from 192.168.1.100 # 拒绝非指定IP访问5901端口
添加规则后,通过以下命令查看当前UFW规则,确认是否生效:
sudo ufw status # 查看规则列表(需开启“Verbose”模式以显示详细信息)
若修改了规则,无需重启UFW,直接执行以下命令重载即可:
sudo ufw reload
若系统未使用UFW,或需要更细粒度的规则控制,可使用iptables手动配置。
若未安装iptables,执行以下命令安装:
sudo apt update
sudo apt install iptables
针对单个VNC会话(如5901端口),执行:
sudo iptables -A INPUT -p tcp --dport 5901 -j ACCEPT # 允许TCP协议的5901端口
若有多个VNC会话,需为每个端口添加对应规则:
sudo iptables -A INPUT -p tcp --dport 5902 -j ACCEPT # 允许第二个VNC会话的端口
若通过SSH隧道连接VNC,需允许SSH连接(默认22端口):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许SSH连接
iptables规则默认重启后会丢失,需保存规则以实现持久化:
sudo iptables-save | sudo tee /etc/iptables/rules.v4 # Debian系统保存规则至指定文件
部分系统可能需要安装iptables-persistent包,以自动加载保存的规则:
sudo apt install iptables-persistent
sudo netfilter-persistent save
sudo systemctl enable iptables # 设置iptables开机自启
sudo systemctl start iptables # 启动iptables服务
无论使用UFW还是iptables,均需通过以下措施提升VNC连接的安全性:
ssh -L 5901:localhost:5901 user@server_ip,将本地的5901端口映射到服务器的5901端口,然后通过vncviewer localhost:1连接。vncpasswd命令为VNC会话设置复杂密码(包含大小写字母、数字和符号),并定期更换。~/.vnc/xstartup),移除不必要的组件(如图形加速),降低被攻击的风险。