在這份指南中,我們將解釋如何安裝和配置VNC遠端存取在CentOS 7/8和RHEL 9/8/7桌面版上,通過tigervnc-server程序來存取遠端桌面機器。
VNC(虛擬網絡計算)是一種伺服器-客戶端協議,允許用戶帳戶遠程連接並控制使用圖形用戶界面提供的資源的遠程系統。
與其他VNC伺服器不同,這些伺服器直接連接到運行時桌面,例如VNC X或Vino,tigervnc-vncserver使用不同的機制,為每個用戶配置一個獨立的虛擬桌面。
要求
步驟1:在CentOS上安裝和配置VNC
1. Tigervnc-server是一個執行Xvnc服務器並在VNC桌面上啟動Gnome或其他桌面環境的程序。
A started VNC user session can be accessed by the same user from multiple VNC clients. In order to install the TigerVNC server in CentOS/RHEL, open a terminal session and issue the following yum command with root privileges.
$ sudo yum install tigervnc-server

2.安裝程序後,使用您想要運行VNC程序的用戶登錄,並在終端中發布以下命令以配置VNC服務器的密碼。
請注意,密碼必須至少六個字符長。
$ su - your_user $ vncpasswd

3.接下來,通過在systemd目錄樹中放置的守護進程配置文件為您的用戶添加VNC服務配置文件。為了複製VNC模板文件,您需要以root權限運行以下cp命令。
如果您的用戶沒有被授予sudo權限,請直接切換到root帳戶或從具有root權限的帳戶運行命令。
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
4. 接下來,編輯從/etc/systemd/system/目錄複製的VNC模板配置文件,並將以下值替換為反映您的用戶的樣本,如下所示。
在@
符號後面的1
值表示顯示號碼(端口5900+display
)。同樣,對於每個啟動的VNC服務器,端口5900將增加1。
# vi /etc/systemd/system/vncserver@\:1.service
將以下行添加到文件vncserver@:1.service中。
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=tecmint Group=tecmint WorkingDirectory=/home/tecmint ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/bin/vncserver %i -geometry 1280x1024 PIDFile=/home/tecmint/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target

5. 在對VNC服務文件進行了適當的更改後,重新加載systemd系統初始化程序以檢測新的vnc配置文件並啟動TigerVNC服務器。
同時,檢查VNC服務狀態,並通過發布以下命令在全局範圍內啟用VNC守護進程。
# systemctl daemon-reload # systemctl start vncserver@:1 # systemctl status vncserver@:1 # systemctl enable vncserver@:1

6. 為了列出由VNC伺服器所擁有的在監聽狀態下的開放埠,請執行ss命令,該命令用於顯示網絡套接字。由於您只啟動了一個VNC伺服器的實例,因此第一個開放的埠是5901/TCP。
再次提醒,ss命令必須以root權限執行。如果您為不同的用戶同時啟動其他VNC實例,則第二個埠的值將是5902,第三個是5903,依此類推。埠6000+用於允許X應用程式連接到VNC伺服器。
# ss -tulpn| grep vnc

7. 為了允許外部VNC客戶端連接到VNC伺服器,您需要確保適當的VNC開放埠可以通過您的防火牆。
如果只啟動了一個VNC伺服器實例,您只需要打開第一個分配的VNC埠:5901/TCP,並發布以下命令以在運行時應用防火牆配置。
# firewall-cmd --add-port=5901/tcp # firewall-cmd --add-port=5901/tcp --permanent
第二步:通過VNC客戶端連接到CentOS桌面
8. 作為一個平台無關的協議,遠程圖形用戶界面VNC連接可以從幾乎任何具有GUI和專用VNC客戶端的操作系統進行。
A popular VNC client used in Microsoft-based operating systems, fully compatible with Linux TigerVNC server, is the RealVNC VNC Viewer.
為了從Microsoft OS透過VNC協議遠端連接到CentOS Desktop,請打開VNC Viewer程式,添加CentOS VNC伺服器的IP地址和埠號,然後按下[enter]鍵。
建立VNC連線後,您的螢幕上應該會顯示一個警告,指出連線未加密,如下列螢幕截圖所示。


9.為了繞過警告,請點擊Continue按鈕,添加在第2點設置的VNC伺服器密碼,您應該就能遠端連接到配置為運行VNC伺服器實例的CentOS Desktop用戶。


10.如果您的螢幕上出現新的Authentication訊息,而您的用戶沒有root權限,只需按下Cancel按鈕繼續連接到CentOS Desktop,如下列螢幕截圖所示。

請注意,建立的VNC通訊和任何交換的數據(密碼除外)都在未加密的通道上運行。為了加密和保護VPN數據傳輸,首先您需要設置一個安全的SSH隧道,並在SSH隧道上運行任何後續的VPN流量。
11.為了從其他CentOS Desktop透過VNC協議遠端連接到CentOS Desktop,首先確保您的系統上安裝了vinagre包,方法是發出以下命令。
$ sudo yum install vinagre
12. 要開啟 vinagre 實用程式,請前往 應用程式 -> 工具 -> 遠端桌面檢視器,如以下螢幕截圖所示。

13. 要遠端連接到 CentOS 桌面,請點擊 連接 按鈕,從列表中選擇 VNC 協議,並添加遠端 VNC 伺服器的 IP 地址 和埠 (5900+顯示 號碼)。同時,提供為 VNC 使用者設置的密碼,如下列螢幕截圖所示。



14. 另一個流行的基於 Linux 平台的 VNC 客戶端是 Remmina,一個遠端桌面客戶端,特別用於運行 GNOME 桌面環境的 基於 Debian 的發行版。
要在基於 Debian 的發行版中安裝 Remmina 遠端桌面 客戶端,請發出以下命令。
$ sudo apt-get install remmina
步驟 3:在 CentOS 上配置多個 VNC 會話
15. 如果您需要使用同一使用者運行新的平行 VNC 會話,請打開終端控制台,使用您想要啟動新 VNC 會話的使用者登錄,並執行以下命令。
當您首次啟動伺服器時,系統會要求您為此會話提供新密碼。但是,請注意,此會話將以您已登錄的用戶權限運行,並且與已啟動的 systemd VNC 伺服器會話獨立。
$ vncserver

16. 新的 VNC 會話將打開下一個可用的基於 VNC 的端口(在此示例中顯示 5900+3 的顯示)。要顯示已打開的端口,請執行以下摘錄中所示的 ss 命令,而無需 root 權限。它將僅列出您的用戶擁有的已啟動 VNC 會話。
$ ss -tlpn| grep Xvnc

17. 現在,使用此新的 VNC 會話遠程連接到 CentOS 桌面,在下面的圖像中提供 IP:port 組合(192.168.1.23:5903)給 VNC 客戶端。

要停止使用這些已登錄用戶權限啟動的 VNC 服務器實例,請發出以下命令,而無需任何 root 權限。此命令將摧毀僅由啟動它們的用戶擁有的所有已啟動 VNC 實例。
$ su - your_user $ killall Xvnc
就這些了!您現在可以通過操作系統提供的圖形用戶界面訪問您的 CentOS 系統並執行管理任務。
Source:
https://www.tecmint.com/install-and-configure-vnc-server-in-centos-7/