温馨提示×

TigerVNC在Linux系统中如何安装

小樊
45
2025-12-14 17:11:30
栏目: 智能运维

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…),为不同用户分别启动不同显示号并分别放行端口。

0