本文仅用于技术学习与交流目的,所涉及的操作步骤、工具使用及配置方法均基于公开资料整理。文中提及的软件为商业授权产品,其合法使用须遵守相关软件许可协议及所在国家/地区的法律法规。
作者及发布平台不鼓励、不支持、亦不承担任何因使用破解工具、绕过授权机制或违反软件许可条款而引发的法律风险、系统安全问题或知识产权纠纷。建议用户在正式开发或生产环境中使用正版授权软件,相关内容如有侵权,请联系作者删除。
1:概念
TigerVNC是一种流行的远程桌面协议,允许用户通过网络远程访问和控制另一台计算机的桌面环境。这对于需要从远程位置访问服务器或桌面环境的管理员和用户来说非常有用。通过TigerVNC,用户可以查看并操作远程计算机的图形界面,就像坐在物理机器前一样。
TigerVNC不仅支持Linux系统,还支持Windows和MacOS,这使得在不同操作系统之间共享桌面环境变得更加容易。无论是在Linux服务器上运行TigerVNC服务器,还是在Windows或MacOS上运行TigerVNC客户端,用户都能享受到一致的远程桌面体验。
2:环境
操作系统:AlmaLinux release 8.10 (Cerulean Leopard)
适用环境:AlmaLinux 8.x/ CentOS 8.x/ RHEL 8.x
TigerVNC 版本:1.13+(新版本 vncsession 方式)
桌面环境:Xfce(轻量,推荐 EDA 场景)
3:安装过程
安装 TigerVNC 和桌面环境
# 安装 EPEL 源dnf install -y epel-release# 安装 TigerVNC 服务端dnf install -y tigervnc-server# 安装 Xfce 桌面环境(轻量推荐)dnf groupinstall -y "Xfce"# 安装中文字体和常用工具dnf install -y wqy-zenhei-fonts wqy-microhei-fonts xterm firefox# 确认桌面环境可用,输出有 xfce.desktop 就说明装好了。ls /usr/share/xsessions/ | grep xfce
创建系统用户
# 创建用户组(如果还没有)groupadd -g 500 yanfa 2>/dev/null# 创建用户# 替换 <用户名> 为实际用户名,比如 user3、user4# 替换 <UID> 为实际 UID,比如 1003、1004useradd -m -u <UID> -g yanfa -s /usr/bin/csh <用户名># 设置用户登录密码(可选,VNC 密码是单独的)passwd <用户名>
设置 VNC 密码
# 替换 <用户名> 和 <密码># VNC 密码最多 8 位有效echo "<密码>" | vncpasswd -f > /home/<用户名>/.vnc/passwdmkdir -p /home/<用户名>/.vncchown -R <用户名>:yanfa /home/<用户名>/.vncchmod 700 /home/<用户名>/.vncchmod 600 /home/<用户名>/.vnc/passwd# 同时复制到新路径(新版本 TigerVNC 会从这里读)mkdir -p /home/<用户名>/.config/tigervnccp /home/<用户名>/.vnc/passwd /home/<用户名>/.config/tigervnc/passwdchown -R <用户名>:yanfa /home/<用户名>/.configchmod 600 /home/<用户名>/.config/tigervnc/passwd
配置用户 VNC 参数
# 替换 <用户名>cat > /home/<用户名>/.config/tigervnc/config << 'EOF'session=xfcegeometry=1920x1080depth=24EOFchown -R <用户名>:yanfa /home/<用户名>/.config##常用参数说明:session=xfce:桌面环境,可选 gnome、mategeometry=1920x1080:分辨率,按需修改depth=24:颜色深度,一般 24 位就行localhost=no:允许远程连接(默认就是 no,不用写)
cat > /etc/tigervnc/vncserver.users << 'EOF'# TigerVNC 用户映射配置# 格式:<显示号>=<用户名>:3=user1:4=user2:5=eda# 新用户加在下面:<显示号>=<用户名>EOF
# 替换 <显示号>,比如 5systemctl start vncserver@:<显示号>systemctl enable vncserver@:<显示号>
# 替换 <端口>,比如 5905firewall-cmd --permanent --add-port=<端口>/tcpfirewall-cmd --reload
# 看服务状态systemctl status vncserver@:<显示号> --no-pager# 看端口监听netstat -tlnp | grep <端口># 看进程ps -ef | grep Xvnc | grep <用户名>
【1】查看状态# 查看单个用户systemctl status vncserver@:5 --no-pager# 查看所有 VNC 服务systemctl status vncserver@:2 vncserver@:3 vncserver@:4 vncserver@:5 --no-pager# 看所有 VNC 进程ps -ef | grep Xvnc | grep -v grep# 看端口监听netstat -tlnp | grep 590【2】启动 / 停止 / 重启# 启动systemctl start vncserver@:5# 停止systemctl stop vncserver@:5# 重启systemctl restart vncserver@:5# 设置开机自启systemctl enable vncserver@:5# 取消开机自启systemctl disable vncserver@:5【3】修改 VNC 密码# 替换 <用户名> 和 <新密码>echo "<新密码>" | vncpasswd -f > /home/<用户名>/.vnc/passwdcp /home/<用户名>/.vnc/passwd /home/<用户名>/.config/tigervnc/passwdchown <用户名>:yanfa /home/<用户名>/.vnc/passwd /home/<用户名>/.config/tigervnc/passwdchmod 600 /home/<用户名>/.vnc/passwd /home/<用户名>/.config/tigervnc/passwd# 重启生效systemctl restart vncserver@:<显示号>【4】修改分辨率# 编辑用户配置vi /home/<用户名>/.config/tigervnc/config# 修改 geometry 那行,比如改成 2560x1440# geometry=2560x1440# 重启生效systemctl restart vncserver@:<显示号>【5】切换桌面环境# 编辑用户配置vi /home/<用户名>/.config/tigervnc/config# 修改 session 那行:# session=xfce → Xfce 桌面(推荐)# session=gnome → GNOME 桌面(较重)# session=mate → MATE 桌面# 重启生效systemctl restart vncserver@:<显示号>【6】删除 VNC 用户# 1. 停止并禁用服务systemctl stop vncserver@:<显示号>systemctl disable vncserver@:<显示号># 2. 从用户映射中删除vi /etc/tigervnc/vncserver.users# 删掉对应的行# 3. 防火墙关闭端口firewall-cmd --permanent --remove-port=<端口>/tcpfirewall-cmd --reload# 4. 清理残留(可选)rm -rf /home/<用户名>/.vncrm -rf /home/<用户名>/.config/tigervncrm -f /tmp/.X<显示号>-lockrm -f /tmp/.X11-unix/X<显示号># 5. 如果连系统用户也要删userdel -r <用户名>【7】查看日志# 系统日志journalctl -u vncserver@:5 --no-pager -n 50# 实时跟踪日志journalctl -u vncserver@:5 -f# 用户目录下的日志tail -f /home/<用户名>/.vnc/bogon:<显示号>.log
【1】服务启动失败,显示端口被占用# 看哪个进程占了端口netstat -tlnp | grep 590X# 杀残留进程pkill -u <用户名> Xvnc# 清理残留文件rm -f /tmp/.X<显示号>-lockrm -f /tmp/.X11-unix/X<显示号>rm -f /home/<用户名>/.vnc/*.pid# 重新启动systemctl restart vncserver@:<显示号>【2】VNC 能连上但黑屏一般是桌面环境没启动起来,检查:# 1. 确认 session 名称对不对ls /usr/share/xsessions/# 2. 看用户配置里的 sessioncat /home/<用户名>/.config/tigervnc/config# 3. 看日志报什么错tail -50 /home/<用户名>/.vnc/bogon:<显示号>.log【3】中文显示乱码,装中文字体:dnf install -y wqy-zenhei-fonts wqy-microhei-fonts【4】VNC 太卡降低颜色深度:depth=16降低分辨率用 Xfce 代替 GNOME(更轻量)客户端用 "高速" 或 "低带宽" 模式
安全建议:不要直接把 VNC 端口暴露在公网,建议通过 SSH 隧道连接。
公网环境强烈建议用 SSH 隧道方式,安全很多。内网的话直接连就行。# 开一个 CMD,同时映射多个端口ssh -p 端口 -L 5903:localhost:5903 -L 5904:localhost:5904 -L 5905:localhost:5905 root@21.21.21.21打开 VNC Viewer 连接127.0.0.1:5905即可;