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