13.3. VNC Viewer
vncviewer
是一个显示图形用户界面并远程控制 vncserver
的程序。
对于运行 vncviewer
,有一个弹出菜单,其中包含执行各种操作(例如切换至全屏模式或退出全屏模式)或退出查看器的条目。或者,您可以通过终端操作 vncviewer
。在命令行中输入 vncviewer -h
以列出 vncviewer
的参数.
13.3.1. 安装 VNC Viewer
要安装 TigerVNC 客户端 vncviewer
,以 root
用户身份运行以下命令:
~]# yum install tigervnc
13.3.2. 连接到 VNC 服务器
配置了 VNC 服务器后,您可以从任何 VNC viewer 连接到它。
使用 GUI 连接到 VNC 服务器
-
输入不带参数的
vncviewer
命令,显示VNC Viewer: Connection Details
实用程序。它将提示 VNC 服务器连接到。 如果需要,要防止断开任何现有 VNC 连接到同一显示,请选择允许共享桌面的选项,如下所示:
- 。
-
选择
Misc.
选项卡。 -
选择
共享
按钮。 - 按确定返回主菜单。
输入要连接的地址和显示号:
address:display_number
- 按"连接 "以连接至 VNC 服务器显示。
系统将提示您输入 VNC 密码。这将是与显示号对应的用户的 VNC 密码,除非设置了全局默认 VNC 密码。
此时将显示显示 VNC 服务器桌面的窗口。请注意,这不是普通用户看到的桌面,而是 Xvnc 桌面。
使用 CLI 连接到 VNC 服务器
输入带有地址并显示为参数的
viewer
命令:vncviewer address:display_number
其中 address 是
IP
地址或主机名。- 通过输入 VNC 密码进行身份验证。这将是与显示号对应的用户的 VNC 密码,除非设置了全局默认 VNC 密码。
- 此时将显示显示 VNC 服务器桌面的窗口。请注意,这不是普通用户看到的桌面,而是 Xvnc 桌面。
13.3.2.1. 为 VNC 配置防火墙
使用非加密连接时,firewalld
可能会阻止连接。要允许 firewalld
传递 VNC 数据包,您可以打开 TCP
流量的特定端口。使用 -via
选项时,流量将通过 SSH
重定向,这在 firewalld
中默认启用。
VNC 服务器的默认端口为 5900。要访问远程桌面的端口,请概述默认端口和用户分配的显示号。例如,第二个显示:2 + 5900 = 5902。
对于显示 0
到 3
,请使用 service
选项使用 firewalld
对 VNC 服务的支持,如下所述。请注意,对于大于 3
的显示号,必须打开对应的端口,具体如 在 firewalld 中打开端口 中所述。
在 firewalld 中启用 VNC 服务
运行以下命令,以查看有关
firewalld
设置的信息:~]$ firewall-cmd --list-all
要允许来自特定地址的所有 VNC 连接,请使用以下命令:
~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.122.116" service name=vnc-server accept' success
请注意,在系统下次启动后这些更改不会保留。要永久更改防火墙,请重复添加
--permanent
选项的命令。有关使用防火墙富语言命令的更多信息,请参阅红帽企业 Linux 7 安全指南。要验证上述设置,请使用以下命令:
~]# 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
要打开特定端口或端口范围,请使用 firewall
选项。例如,VNC 显示 -cmd 命令行工具的 --add-
port4
要求为 TCP
流量打开端口 5904
。
在 firewalld 中打开端口
要在公共区中为
TCP
流量打开端口,以root
身份发出命令,如下所示:~]# firewall-cmd --zone=public --add-port=5904/tcp success
要查看公共区当前打开的端口,请使用以下命令:
~]# firewall-cmd --zone=public --list-ports 5904/tcp
可以使用 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
例 13.1. 使用 -via 选项
要使用
SSH
连接到 VNC 服务器,请输入以下命令:~]$ vncviewer -via USER_2@192.168.2.101:3
- 系统提示时,键入密码并通过按 Enter 进行确认。
- 在您的屏幕上会显示带有远程桌面的窗口。
限制 VNC 访问
如果您只想使用加密的连接,可以使用 systemd.service
文件中的 -localhost
选项完全防止未加密的连接,使用 ExecStart 行:
ExecStart=/usr/sbin/runuser -l user -c "/usr/bin/vncserver -localhost %i"
这将阻止 vncserver
接受来自本地主机之外的任何连接以及使用 SSH
发送的端口转发连接 。
有关使用 SSH
的详情请参考 第 12 章 OpenSSH。