13.3. VNC Viewer


vncviewer 是一个显示图形用户界面并远程控制 vncserver 的程序。

对于运行 vncviewer,有一个弹出菜单,其中包含执行各种操作(例如切换至全屏模式或退出全屏模式)或退出查看器的条目。或者,您可以通过终端操作 vncviewer。在命令行中输入 vncviewer -h 以列出 vncviewer 的参数.

13.3.1. 安装 VNC Viewer

要安装 TigerVNC 客户端 vncviewer,以 root 用户身份运行以下命令:

~]# yum install tigervnc
Copy to Clipboard Toggle word wrap

13.3.2. 连接到 VNC 服务器

配置了 VNC 服务器后,您可以从任何 VNC viewer 连接到它。

使用 GUI 连接到 VNC 服务器

  1. 输入不带参数的 vncviewer 命令,显示 VNC Viewer: Connection Details 实用程序。它将提示 VNC 服务器连接到。
  2. 如果需要,要防止断开任何现有 VNC 连接到同一显示,请选择允许共享桌面的选项,如下所示:

    1. 选择"选项"按钮
    2. 选择 Misc. 选项卡。
    3. 选择 共享 按钮。
    4. 按确定返回主菜单
  3. 输入要连接的地址和显示号:

    address:display_number
    Copy to Clipboard Toggle word wrap
  4. 按"连接 "以连接至 VNC 服务器显示。
  5. 系统将提示您输入 VNC 密码。这将是与显示号对应的用户的 VNC 密码,除非设置了全局默认 VNC 密码。

    此时将显示显示 VNC 服务器桌面的窗口。请注意,这不是普通用户看到的桌面,而是 Xvnc 桌面。

使用 CLI 连接到 VNC 服务器

  1. 输入带有地址并显示为参数的 viewer 命令:

    vncviewer address:display_number
    Copy to Clipboard Toggle word wrap

    其中 addressIP 地址或主机名。

  2. 通过输入 VNC 密码进行身份验证。这将是与显示号对应的用户的 VNC 密码,除非设置了全局默认 VNC 密码。
  3. 此时将显示显示 VNC 服务器桌面的窗口。请注意,这不是普通用户看到的桌面,而是 Xvnc 桌面。

13.3.2.1. 为 VNC 配置防火墙

使用非加密连接时,firewalld 可能会阻止连接。要允许 firewalld 传递 VNC 数据包,您可以打开 TCP 流量的特定端口。使用 -via 选项时,流量将通过 SSH 重定向,这在 firewalld 中默认启用。

注意

VNC 服务器的默认端口为 5900。要访问远程桌面的端口,请概述默认端口和用户分配的显示号。例如,第二个显示:2 + 5900 = 5902。

对于显示 03,请使用 service 选项使用 firewalld 对 VNC 服务的支持,如下所述。请注意,对于大于 3 的显示号,必须打开对应的端口,具体如 在 firewalld 中打开端口 中所述。

在 firewalld 中启用 VNC 服务

  1. 运行以下命令,以查看有关 firewalld 设置的信息:

    ~]$ firewall-cmd --list-all
    Copy to Clipboard Toggle word wrap
  2. 要允许来自特定地址的所有 VNC 连接,请使用以下命令:

    ~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.122.116" service name=vnc-server accept'
    success
    Copy to Clipboard Toggle word wrap

    请注意,在系统下次启动后这些更改不会保留。要永久更改防火墙,请重复添加 --permanent 选项的命令。有关使用防火墙富语言命令的更多信息,请参阅红帽企业 Linux 7 安全指南

  3. 要验证上述设置,请使用以下命令:

    ~]# firewall-cmd --list-all
    public (default, active)
     interfaces: bond0 bond0.192
     sources:
     services: dhcpv6-client ssh
     ports:
     masquerade: no
     forward-ports:
     icmp-blocks:
     rich rules:
    	rule family="ipv4" source address="192.168.122.116" service name="vnc-server" accept
    Copy to Clipboard Toggle word wrap

要打开特定端口或端口范围,请使用 firewall -cmd 命令行工具的 --add- port 选项。例如,VNC 显示 4 要求为 TCP 流量打开端口 5904

在 firewalld 中打开端口

  1. 要在公共区中为 TCP 流量打开端口,以 root 身份发出命令,如下所示:

    ~]# firewall-cmd --zone=public --add-port=5904/tcp
    success
    Copy to Clipboard Toggle word wrap
  2. 要查看公共区当前打开的端口,请使用以下命令:

    ~]# firewall-cmd --zone=public --list-ports
    5904/tcp
    Copy to Clipboard Toggle word wrap

可以使用 firewall-cmd --zone=zone --remove-port=number/protocol 命令删除 端口。

请注意,在系统下次启动后这些更改不会保留。要永久更改防火墙,请重复添加 --permanent 选项的命令。有关在 firewalld 中打开和关闭端口的更多信息,请参阅 Red Hat Enterprise Linux 7 安全指南

13.3.3. 使用 SSH 连接到 VNC 服务器

VNC 是明文网络协议,对通信中可能出现的攻击没有安全性。为确保通信安全,您可以使用 -via 选项加密您的 server-client 连接。这将在 VNC 服务器和客户端之间创建一个 SSH 隧道。

加密 VNC server-client 连接的命令格式如下:

vncviewer -via user@host:display_number
Copy to Clipboard Toggle word wrap

例 13.1. 使用 -via 选项

  1. 要使用 SSH 连接到 VNC 服务器,请输入以下命令:

    ~]$ vncviewer -via USER_2@192.168.2.101:3
    Copy to Clipboard Toggle word wrap
  2. 系统提示时,键入密码并通过按 Enter 进行确认
  3. 在您的屏幕上会显示带有远程桌面的窗口。
限制 VNC 访问

如果您只想使用加密的连接,可以使用 systemd.service 文件中的 -localhost 选项完全防止未加密的连接,使用 ExecStart 行:

ExecStart=/usr/sbin/runuser -l user -c "/usr/bin/vncserver -localhost %i"
Copy to Clipboard Toggle word wrap

这将阻止 vncserver 接受来自本地主机之外的任何连接以及使用 SSH 发送的端口转发连接

有关使用 SSH 的详情请参考 第 12 章 OpenSSH

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat