如何在Ubuntu 20.04上安裝和配置VNC

虛擬網絡計算(VNC)是一個圖形桌面共享系統,可讓您使用鍵盤和鼠標來遠程控制另一台計算機。 它是Microsoft遠程桌面協議(RDP)的開源替代方案。

本文介紹了如何在Ubuntu 20.04上安裝和配置VNC服務器。 我們還將向您展示如何通過SSH隧道安全地連接到VNC服務器。

安裝桌面環境

Ubuntu服務器是通過命令行管理的,默認情況下未安裝桌面環境。 如果您運行桌面版本的Ubuntu,請跳過此步驟。

Ubuntu存儲庫中提供了各種桌面環境。 一種選擇是安裝Gnome,它是Ubuntu 20.04中的默認桌面環境。 另一個選擇是安裝Xfce。 它是一種快速,穩定且輕巧的桌面環境,非常適合在遠程服務器上使用。

在本指南中,我們將安裝Xfce。 以具有sudo特權的用戶身份輸入以下命令:

sudo apt updatesudo apt install xfce4 xfce4-goodies

根據您的系統,下載和安裝Xfce軟件包可能需要一些時間。

安裝VNC服務器

Ubuntu存儲庫中有幾種不同的VNC服務器,例如TightVNC,TigerVNC和x11vnc。 每個VNC服務器在速度和安全性方面都有各自的優缺點。

我們將安裝TigerVNC。 這是一個主動維護的高性能VNC服務器。 鍵入以下命令以安裝軟件包:

sudo apt install tigervnc-standalone-server

配置VNC訪問#

安裝VNC服務器後,下一步是創建初始用戶配置並設置密碼。

使用 vncpasswd 命令。 運行以下命令時請勿使用sudo:

vncpasswd

系統將提示您輸入並確認密碼,以及是否將其設置為只讀密碼。 如果選擇設置僅查看密碼,則用戶將無法使用鼠標和鍵盤與VNC實例進行交互。

Password:
Verify:
Would you like to enter a view-only password (y/n)? n

密碼文件存儲在 ~/.vnc 目錄,如果不存在則創建。

接下來,我們需要配置TigerVNC以使用Xfce。 為此,請創建以下文件:

〜/ .vnc / xstartup

nano ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 

保存並關閉文件。 每當您啟動或重新啟動TigerVNC服務器時,以上命令都會自動執行。

~/.vnc/xstartup 文件還需要具有執行權限。 使用 chmod
用於設置文件權限的命令:

chmod u+x ~/.vnc/xstartup

如果您需要將其他選項傳遞給VNC服務器,請創建一個名為 config 並在每行添加一個選項。 這是一個例子:

〜/ .vnc /配置

geometry=1920x1080
dpi=96

現在,您可以使用 vncserver 命令:

vncserver
New 'server2.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.com

Starting applications specified in /home/linuxize/.vnc/xstartup
Log file is /home/linuxize/.vnc/server2.linuxize.com:1.log

Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/linuxize/.vnc/passwd :1 to connect to the VNC server.

注意 :1 在上面輸出中的主機名之後。 這表示正在運行vnc服務器的顯示端口號。 在此示例中,服務器在TCP端口上運行 5901 (5900 + 1)。 如果您使用創建第二個實例 vncserver 它會在下一個空閑端口上運行,即 :2,這表示服務器正在端口上運行 5902 (5900 + 2)。

要記住的重要一點是,在使用VNC服務器時, :X 是指的顯示端口 5900+X

您可以通過鍵入以下命令獲取所有當前正在運行的VNC會話的列表:

vncserver -list
TigerVNC server sessions:

X DISPLAY #	RFB PORT #	PROCESS ID
:1		      5901		    5710

在繼續下一步之前,請使用 vncserver 用一個命令 -kill 選項和服務器號作為參數。 在此示例中,服務器在端口5901中運行(:1),因此我們將使用以下命令停止它:.large-mobile-banner-1-multi-157 {border:none!important; display:block!important; float:none; line-height:0px; margin-bottom:24px !important; margin-left:0px!important; margin-right:0px!important; margin-top:24px!important; min-height:250px; min-width:250px; text-align:center!important;}

vncserver -kill :1
Killing Xtigervnc process ID 5710... success!

創建一個Systemd單位文件

讓我們創建一個systemd單元文件,而不是手動啟動VNC會話,以便您根據需要啟動,停止和重新啟動VNC服務。

打開您的文本編輯器,然後將以下配置複製並粘貼到其中。 確保在第7行更改用戶名以匹配您的用戶名。

sudo nano /etc/systemd/system/[email protected]

/etc/systemd/system/[email protected]

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=linuxize
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

保存並關閉文件。

通知systemd已創建一個新的單位文件:

sudo systemctl daemon-reload

啟用服務以在啟動時啟動:

sudo systemctl enable [email protected]

數字 1 之後 @ 符號定義將在其上運行VNC服務的顯示端口。 這意味着VNC服務器將在端口上偵聽 5901,正如我們在上一節中討論的那樣。

通過執行以下命令來啟動VNC服務:

sudo systemctl start [email protected]

驗證服務是否成功啟動:

sudo systemctl status [email protected]
[email protected] - Remote desktop service (VNC)
     Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-03-26 20:00:59 UTC; 3s ago
...

連接到VNC服務器

VNC不是加密協議,可能會受到數據包嗅探的影響。 推薦的方法是創建SSH隧道,並將流量從端口5901上的本地計算機安全轉發到同一端口上的服務器。

在Linux和macOS上設置SSH隧道#

如果您在計算機上運行Linux,macOS或任何其他基於Unix的操作系統,則可以使用以下命令輕鬆創建SSH隧道:

ssh -L 5901:127.0.0.1:5901 -N -f -l vagrant 192.168.33.10

系統將提示您輸入用戶密碼。

確保更換 usernameserver_ip_address 以及您的用戶名和服務器的IP地址。

在Windows上設置SSH隧道#

如果您運行Windows,則可以使用PuTTY SSH客戶端設置SSH隧道。

打開Putty,然後在 Host name or IP address 場地。

在下面 Connection 菜單,盒子,展開 SSH,然後選擇 Tunnels。 輸入VNC服務器端口(5901) 在裡面 Source Port 字段並輸入 server_ip_address:5901 在裡面 Destination 字段,然後單擊 Add 按鈕,如下圖所示:

VNC SSH隧道膩子

回到 Session 頁以保存設置,因此您無需每次都輸入它們。 對於遠程服務器,選擇保存的會話,然後單擊 Open 按鈕。

使用Vncviewer連接

現在已經創建了SSH隧道,現在該打開Vncviewer並在以下位置連接到VNC服務器了: localhost:5901

您可以將任何VNC查看器(例如TigerVNC,TightVNC,RealVNC,UltraVNC,Vinagre和VNC查看器)用於Google Chrome瀏覽器。

我們將使用TigerVNC。 打開查看器,輸入 localhost:5901,然後點擊 Connect 按鈕。

VNC查看器

在出現提示時輸入您的用戶密碼,您應該會看到默認的Xfce桌面。 它看起來像這樣:

VNC SSH XFCE桌面

您可以使用鍵盤和鼠標從本地計算機開始與遠程XFCE桌面進行交互。

結論 #

我們已經向您展示了如何在Ubuntu 20.04上安裝和配置VNC服務器,並使其啟動並運行。

要將VNC服務器配置為為多個用戶啟動顯示,請創建初始配置並使用以下命令設置密碼: vncpasswd 命令。 您還需要使用其他端口創建一個新的服務文件。

如有任何疑問,請隨時發表評論。

ubuntu vnc

Sidebar