引言:TigerVNC 适用场景
TigerVNC 是一个高性能、跨平台的虚拟网络计算(VNC)服务器,主要用于远程桌面访问。以下是一些典型的使用场景:
1. 服务器远程管理
- 无图形界面服务器:为仅安装了命令行界面的 Linux 服务器提供远程桌面环境,方便进行图形化配置和管理。
- 数据中心运维:在机房环境中,通过 VNC 远程访问服务器桌面,减少物理接触需求。
2. 开发与测试环境
- 远程开发:在远程服务器上运行 IDE 或图形化开发工具,从本地机器访问。
- 软件测试:测试需要图形界面的应用程序,尤其是在无显示器的服务器上。
3. 教育培训
- 教学演示:教师可以共享桌面给学生,进行软件操作演示。
- 实验室环境:学生通过 VNC 访问实验室的 Linux 机器,进行编程和实验。
4. 多用户协作
- 技术支持:技术支持人员通过 VNC 远程协助用户解决问题。
- 团队协作:多个团队成员可以同时查看或操作同一台机器的桌面。
5. 个人使用
- 家庭服务器:访问家庭媒体服务器或 NAS 的图形界面。
- 旧设备利用:将旧电脑或迷你主机作为远程桌面服务器使用。
TigerVNC 的优势
- 开源免费:完全开源,无需支付许可费用。
- 跨平台:支持 Windows、Linux、macOS 等多种操作系统。
- 高性能:采用高效的编码算法,在低带宽下也能提供流畅的体验。
- 安全性:支持多种认证方式和加密传输。
本文将以 CentOS/RHEL 系统为例,详细介绍 TigerVNC 服务器的安装、配置和使用方法。
1. 环境检查与软件安装
1.1 检查是否已安装TigerVNC
bash
# 检查系统是否有安装tigervnc-server软件包
rpm -qa | grep vnc
1.2 安装TigerVNC服务器
bash
# 安装tigervnc-server软件包
yum install tigervnc-server
2. 配置VNC服务
2.1 进入systemd配置目录
bash
cd /lib/systemd/system
2.2 复制VNC服务配置文件
bash
# 复制配置文件模板,创建1号窗口的VNC服务配置
cp vncserver@.service vncserver@:1.service
2.3 编辑VNC服务配置文件
使用VI编辑器修改 vncserver@:1.service 文件,将 <USER> 替换为实际用户名:
ini
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i" # <USER>修改为你需要的用户名
PIDFile=/home/<USER>/.vnc/%H%i.pid # <USER>修改为你需要的用户名
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
3. 应用配置与启动服务
3.1 重新加载systemd配置
bash
# 更新systemctl,使刚才的修改生效
systemctl daemon-reload
3.2 设置VNC用户密码
bash
# 设置用户vnc的密码(使用第2.3步中设置的用户名)
vncpasswd <USER>
# 系统会提示输入密码并确认
3.3 启动VNC服务
bash
# 使用1号窗口启动VNC服务
vncserver :1
4. 连接VNC服务器
4.1 服务器信息
- VNC服务器端口:5901(1号窗口对应5901端口)
4.2 客户端连接
使用VNC客户端工具(如VNC-Viewer-6.1.1-Windows-64bit.exe)连接VNC服务器:
- 服务器地址:
IP地址:5901 - 输入第3.2步设置的密码
5. 注意事项
- 配置文件说明 :
/lib/systemd/system/vncserver@.service是配置文件模板,可以根据需要创建多个VNC窗口配置 - 端口对应关系 :VNC窗口号与端口号的对应关系为
5900 + 窗口号 - 用户权限:确保配置文件中指定的用户有相应的家目录和权限
- 防火墙:如果启用了防火墙,需要开放对应的VNC端口(如5901)
6. 常用管理命令
bash
# 查看VNC服务状态
systemctl status vncserver@:1.service
# 停止VNC服务
vncserver -kill :1
# 设置VNC服务开机自启
systemctl enable vncserver@:1.service
# 禁用VNC服务开机自启
systemctl disable vncserver@:1.service