TigerVNC在Linux系统中的安装与快速配置
一 安装步骤
- 不同发行版使用各自的包管理器安装,安装前建议先更新索引并确认已安装桌面环境(VNC需要图形会话支持)。
- 安装命令一览:
- Ubuntu/Debian:sudo apt update && sudo apt install -y tigervnc-standalone-server tigervnc-common
- CentOS/RHEL 7:sudo yum install -y tigervnc-server
- Fedora:sudo dnf install -y tigervnc-server
- Arch Linux:sudo pacman -S tigervnc
- 安装完成后可运行 vncserver 首次设置访问密码(见下一节)。
二 首次配置与启动
- 设置VNC连接密码(本地用户执行):vncpasswd(密码至少6位,保存在 ~/.vnc/passwd)。
- 配置桌面会话:编辑 ~/.vnc/xstartup,为所选桌面环境写入启动命令并赋予可执行权限(chmod +x)。示例:
- Xfce(轻量推荐):
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
- GNOME(Ubuntu 常见):
#!/bin/sh
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
exec /etc/X11/Xsession ubuntu-xsession
- 启动VNC服务:vncserver :1 -geometry 1920x1080 -depth 24(:1 对应端口 5901,:2 对应 5902,以此类推)。
- 常用管理:
- 查看会话:vncserver -list
- 停止会话:vncserver -kill :1。
三 防火墙与端口
- VNC显示编号与端口映射:显示号 :n 对应端口 5900+n(例如 :1→5901)。
- 防火墙放行示例:
- firewalld(CentOS/RHEL/Fedora):sudo firewall-cmd --add-port=5901/tcp --permanent && sudo firewall-cmd --reload
- ufw(Ubuntu/Debian):sudo ufw allow 5901/tcp && sudo ufw reload
- 客户端连接地址示例:<服务器IP>:5901。
四 安全加固与开机自启
- 推荐通过SSH隧道加密:ssh -L 5901:localhost:5901 用户名@服务器IP,然后客户端连接 localhost:5901(避免直接暴露5901端口到公网)。
- systemd服务自启(以用户 alice 为例,显示号 :1):
- 创建服务文件:sudo nano /etc/systemd/system/vncserver@.service,内容示例:
[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=alice
ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24
ExecStop=/usr/bin/vncserver -kill :1
Restart=on-failure
[Install]
WantedBy=multi-user.target
- 启用并启动:sudo systemctl daemon-reload && sudo systemctl enable --now vncserver@1.service
- 旧版 RHEL/CentOS 7 也可复制并修改系统提供的 vncserver@.service 模板后启用(将模板中的 替换为实际用户名)。
五 常见问题排查
- 黑屏或无响应:检查 ~/.vnc/xstartup 是否按所用桌面环境正确配置,查看日志 ~/.vnc/*.log 定位错误。
- 连接被拒绝或超时:确认服务已启动(ss -tulnp | grep vnc)、防火墙已放行对应端口,必要时改用SSH隧道测试连通性。
- 多用户与端口:不同显示号对应不同端口(:1→5901,:2→5902…),为不同用户分别启动不同显示号并分别放行端口。