如何用CentOS搭建TigerVNC服务器实现远程桌面?

更新于
2026-08-13 17:12:15
5阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

安装前准备

在开始搭建 TigerVNC 服务器之前。需要先解决以下常见痛点:

  • 缺少图形化桌面环境:默认 CentOS Server 版本没有 GUI,直接启动 VNC 会出现空白屏幕。
  • 依赖冲突:在旧版 CentOS上使用 yum 安装时会报 “cannot find required package” 的错误。
  • 防火墙阻断:firewalld 默认只开启 ssh。VNC 端口需手动开放,否则连接失败。
  • 会话冲突:多使用者同时使用同一 VNC 会话号导致互相覆盖。

再看步骤一,安装常用软件包

1️⃣ 确认程序已安装图形化桌面环境。如果没有,可以执行:

如何用CentOS搭建TigerVNC服务器实现远程桌面?
# CentOS 7
sudo yum groupinstall -y "Server with GUI"
# CentOS 8 / 9
sudo dnf groupinstall -y "Server with Workstation"

2️⃣ 安装 TigerVNC Server 与相关组件:

# CentOS 7
sudo yum install -y tigervnc-server
# CentOS 8 / 9
sudo dnf install -y tigervnc-server

痛点提示:若出现 “package tigervnc-server-... does not exist” 错误。请检查是否启用了正确的软件仓库,例如 EPEL 或官方 AppStream。

至于步骤二。设置 VNC 密码

`vncpasswd` 用于创建 VNC 登录密码,并可选择加密存储。执行后按提示输入两次就可以完成设置。

# 设置密码
vncpasswd

痛点提示:- 若密码为空或含特殊字符导致客户端拒绝连接,请改为简单英文数字组合;- 如果忘记密码,可删除 /home/使用者名/.vnc/passwd 并重新执行上一步。

从步骤三来看,配置 X Startup 脚本

X Startup 脚本决定了 VNC 启动时加载什么桌面环境。默认文件位于 /etc/vnc/xstartup 或者你可以在使用者目录下创建自定义脚本。

# 编辑 xstartup 文件
sudo vi /etc/vnc/xstartup
# 推荐内容
#!怎么说呢,/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
&& exec /etc/vnc/xsession &
&& xrdb $HOME/.Xresources &
gnome-session --session=gnome-basic &

注意: 务必将文件设为可执行权限:chmod +x /etc/vnc/xstartup

如果你更喜欢轻量级 XFCE。可改成下面内容:

# XFCE 示例
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &

步骤四这方面,创建 systemd 服务单元文件

Create a template unit file so each session can be managed individually.

# /etc/systemd/system/vncserver@.service
Description=TigerVNC Server for %i
After=syslog.target network.target
Type=forking
User=%i # 使用者名。如 alice、bob 等,确保对应 home 有 .vnc/passwd 和 .vnc/xstartup
PIDFile=/home/%i/.vnc/%H:%i.pid
ExecStartPre=/usr/bin/mkdir -p /home/%i/.vnc \
&& /usr/bin/chown %i:%i /home/%i/.vnc \
&& rm -f $PIDFile
ExecStart=/usr/bin/vncserver :%i \
-geometry 1280x800 \
-depth 24 \
-localhost no \
-rfbauth /home/%i/.vnc/passwd \\
>/dev/null &>

提示: %i 表示会话号,例如 :1、:2; %H 为主机名,请根据实际情况修改方法与权限。

启动并设置开机自启:

# 开机自启并立即开启服务
sudo systemctl daemon-reload # 刷新 unit 文件
sudo systemctl enable
sudo systemctl start
# 检查状态
systemctl status

警告: 如果同一台机器上有多个使用者同时登录同一个会话号。会出现互相覆盖的问题,请确保每个使用者使用独立的会话号。

步骤五这方面。开放防火墙端口

TigerVNC 默认端口为5900+n,其中 n 是会话号。例如 alice 使用 :1 时端口为5901。打开对应端口即可,老实说,

# 打开所有 VNC 服务端口范围
sudo firewall-cmd --permanent --add-port=5900-5999/tcp
sudo firewall-cmd --reload
# 或者仅针对特定会话号:
sudo firewall-cmd --permanent --add-port=5901/tcp
sudo firewall-cmd --reload

IPv6 环境下的注意事项:

  • Might need to disable IPv6 binding if clients cannot connect.
  • Add `-localhost no` flag in ExecStart ensures remote connections are accepted.

说到步骤六。从客户端连接到 VNC Server

网站客户端软件建议
Windows 10/11 / Server 2019+ ,或者 RealVNC Viewer。
Linux Desktop ,或者内置 Vino、Remmina 等工具。
Mac OS X + iPad + Android 手机等移动设备

  • 连接格式的观点是。:,如 192.168.10.5:1。若开启了防火墙,仅允许特定 IP 段请检查访问规则。:
  • 首次连接时客户端可能弹出安全证书警告,请确认服务器身份后继续。
  • 若显示的是黑屏或无窗口。请检查 X Startup 是否正确加载桌面环境,并确保已重启对应服务。
  • 对高 DPI 显示器可在 xstartup 中添加 export GDK_SCALE=2 等调整分辨率参数。
  • 常见错误及方法:

如何用CentOS搭建TigerVNC服务器实现远程桌面?

  • Error opening display: — 检查是否忘记在 ExecStart 中加入 -localhost no;不过,
  • Connection timed out: — 防火墙未开放对应端口;
  • Auntication failed: — 密码错误或未保存到 ~/.vnc/passwd
  • Unknown protocol version: 与客户端版本不匹配,可尝试更新 TigerVNC 客户端到最新版。
  • \end{itemize}


    *这篇文章基于 CentOS 7/8/9,适用于单主机多终端远程办公或教育场景*

    标签:CentOS

    安装前准备

    在开始搭建 TigerVNC 服务器之前。需要先解决以下常见痛点:

    • 缺少图形化桌面环境:默认 CentOS Server 版本没有 GUI,直接启动 VNC 会出现空白屏幕。
    • 依赖冲突:在旧版 CentOS上使用 yum 安装时会报 “cannot find required package” 的错误。
    • 防火墙阻断:firewalld 默认只开启 ssh。VNC 端口需手动开放,否则连接失败。
    • 会话冲突:多使用者同时使用同一 VNC 会话号导致互相覆盖。

    再看步骤一,安装常用软件包

    1️⃣ 确认程序已安装图形化桌面环境。如果没有,可以执行:

    如何用CentOS搭建TigerVNC服务器实现远程桌面?
    # CentOS 7
    sudo yum groupinstall -y "Server with GUI"
    # CentOS 8 / 9
    sudo dnf groupinstall -y "Server with Workstation"
    

    2️⃣ 安装 TigerVNC Server 与相关组件:

    # CentOS 7
    sudo yum install -y tigervnc-server
    # CentOS 8 / 9
    sudo dnf install -y tigervnc-server
    

    痛点提示:若出现 “package tigervnc-server-... does not exist” 错误。请检查是否启用了正确的软件仓库,例如 EPEL 或官方 AppStream。

    至于步骤二。设置 VNC 密码

    `vncpasswd` 用于创建 VNC 登录密码,并可选择加密存储。执行后按提示输入两次就可以完成设置。

    # 设置密码
    vncpasswd
    

    痛点提示:- 若密码为空或含特殊字符导致客户端拒绝连接,请改为简单英文数字组合;- 如果忘记密码,可删除 /home/使用者名/.vnc/passwd 并重新执行上一步。

    从步骤三来看,配置 X Startup 脚本

    X Startup 脚本决定了 VNC 启动时加载什么桌面环境。默认文件位于 /etc/vnc/xstartup 或者你可以在使用者目录下创建自定义脚本。

    # 编辑 xstartup 文件
    sudo vi /etc/vnc/xstartup
    # 推荐内容
    #!怎么说呢,/bin/sh
    unset SESSION_MANAGER
    unset DBUS_SESSION_BUS_ADDRESS
    && exec /etc/vnc/xsession &
    && xrdb $HOME/.Xresources &
    gnome-session --session=gnome-basic &
    

    注意: 务必将文件设为可执行权限:chmod +x /etc/vnc/xstartup

    如果你更喜欢轻量级 XFCE。可改成下面内容:

    # XFCE 示例
    #!/bin/sh
    unset SESSION_MANAGER
    unset DBUS_SESSION_BUS_ADDRESS
    startxfce4 &
    

    步骤四这方面,创建 systemd 服务单元文件

    Create a template unit file so each session can be managed individually.

    # /etc/systemd/system/vncserver@.service
    Description=TigerVNC Server for %i
    After=syslog.target network.target
    Type=forking
    User=%i # 使用者名。如 alice、bob 等,确保对应 home 有 .vnc/passwd 和 .vnc/xstartup
    PIDFile=/home/%i/.vnc/%H:%i.pid
    ExecStartPre=/usr/bin/mkdir -p /home/%i/.vnc \
    && /usr/bin/chown %i:%i /home/%i/.vnc \
    && rm -f $PIDFile
    ExecStart=/usr/bin/vncserver :%i \
    -geometry 1280x800 \
    -depth 24 \
    -localhost no \
    -rfbauth /home/%i/.vnc/passwd \\
    >/dev/null &>

    提示: %i 表示会话号,例如 :1、:2; %H 为主机名,请根据实际情况修改方法与权限。

    启动并设置开机自启:

    # 开机自启并立即开启服务
    sudo systemctl daemon-reload # 刷新 unit 文件
    sudo systemctl enable
    sudo systemctl start
    # 检查状态
    systemctl status
    

    警告: 如果同一台机器上有多个使用者同时登录同一个会话号。会出现互相覆盖的问题,请确保每个使用者使用独立的会话号。

    步骤五这方面。开放防火墙端口

    TigerVNC 默认端口为5900+n,其中 n 是会话号。例如 alice 使用 :1 时端口为5901。打开对应端口即可,老实说,

    # 打开所有 VNC 服务端口范围
    sudo firewall-cmd --permanent --add-port=5900-5999/tcp
    sudo firewall-cmd --reload
    # 或者仅针对特定会话号:
    sudo firewall-cmd --permanent --add-port=5901/tcp
    sudo firewall-cmd --reload
    

    IPv6 环境下的注意事项:

    • Might need to disable IPv6 binding if clients cannot connect.
    • Add `-localhost no` flag in ExecStart ensures remote connections are accepted.

    说到步骤六。从客户端连接到 VNC Server

    网站客户端软件建议
    Windows 10/11 / Server 2019+ ,或者 RealVNC Viewer。
    Linux Desktop ,或者内置 Vino、Remmina 等工具。
    Mac OS X + iPad + Android 手机等移动设备

    • 连接格式的观点是。:,如 192.168.10.5:1。若开启了防火墙,仅允许特定 IP 段请检查访问规则。:
    • 首次连接时客户端可能弹出安全证书警告,请确认服务器身份后继续。
    • 若显示的是黑屏或无窗口。请检查 X Startup 是否正确加载桌面环境,并确保已重启对应服务。
    • 对高 DPI 显示器可在 xstartup 中添加 export GDK_SCALE=2 等调整分辨率参数。
    • 常见错误及方法:

    如何用CentOS搭建TigerVNC服务器实现远程桌面?

  • Error opening display: — 检查是否忘记在 ExecStart 中加入 -localhost no;不过,
  • Connection timed out: — 防火墙未开放对应端口;
  • Auntication failed: — 密码错误或未保存到 ~/.vnc/passwd
  • Unknown protocol version: 与客户端版本不匹配,可尝试更新 TigerVNC 客户端到最新版。
  • \end{itemize}


    *这篇文章基于 CentOS 7/8/9,适用于单主机多终端远程办公或教育场景*

    标签:CentOS