首頁 > 軟體

如何在 Ubuntu 18.04 上安裝和設定 VNC

2020-06-16 16:34:22

本指南介紹了在 Ubuntu 18.04 系統上安裝和設定 VNC 伺服器所需的步驟。我們還將向您展示如何通過 SSH 隧道安全地連線到 VNC 伺服器。

虛擬網路計算(VNC)是一種圖形桌面共用系統,允許您使用鍵盤和滑鼠遠端控制另一台計算機。

先決條件

在繼續學習本教學之前,請確保以具有 sudo 許可權的使用者身份登入。

安裝桌面環境

大多數伺服器沒有安裝桌面環境,因此我們首先要安裝輕量級桌面環境。

Ubuntu 儲存庫中有幾個桌面環境(DE)。在本教學中,我們將安裝 Xfce 。它是快速,穩定和輕量級的桌面環境,非常適合在遠端伺服器上使用。

首先使用以下命令更新系統

sudo apt update
sudo apt upgrade

然後,鍵入以下命令以在伺服器上安裝 Xfce :

sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

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

安裝 VNC 伺服器

Ubuntu 儲存庫中還有幾種不同的 VNC 伺服器,如 TightVNCTigerVNCx11vnc 。每個 VNC 伺服器在速度和安全性方面都有不同的優點和缺點。

我們將安裝 TigerVNC ,它是高效能 VNC 伺服器,並被積積極維護。

鍵入以下命令以在 Ubuntu 伺服器上安裝 TigerVNC :

sudo apt install tigervnc-standalone-server tigervnc-common

現在安裝了 VNC 伺服器,下一步是執行 vncserver 命令,該命令將建立初始設定並設定密碼。執行以下命令時不要使用 sudo :

vncserver

系統將提示您輸入並確認密碼,以及是否將其設定為僅檢視密碼。如果您選擇設定僅檢視密碼,則使用者將無法使用滑鼠和鍵盤與 VNC 範例進行互動。

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
/usr/bin/xauth:  file /home/buzheng/.Xauthority does not exist

New 'server2.buzheng.org:1 (buzheng)' desktop at :1 on machine server2.buzheng.org

Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/buzheng/.vnc/server2.buzheng.org:1.log

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

第一次 vncserver 執行命令時,它將建立密碼檔案並將其儲存在 ~/.vnc 目錄中,如果不存在,將建立該目錄。

注意上面輸出中主機名之後的 :1 。這表示執行 vnc 伺服器的顯示埠號。在我們的例子中,伺服器在 TCP 埠 5901 (5900 + 1)上執行。如果您建立第二個範例, vncserver 它將在下一個空閒埠上執行,即 :2 這意味著伺服器正在埠 5902 (5900 + 2)上執行。

重要的是要記住,當使用 VNC 伺服器時, :X 是一個參照的顯示埠 5900+X 。

在繼續下一步之前,首先使用帶有 -kill 選項和伺服器編號作為引數的 vncserver 命令停止 VNC 範例。在我們的例子中,伺服器在埠 5901 (:1)中執行,因此我們將使用以下命令停止它:

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

設定 VNC 伺服器

現在我們已經在伺服器上安裝了 Xfce 和 TigerVNC ,我們需要設定 TigerVNC 來使用 Xfce 。為此,請建立以下檔案 ?/.vnc/xstartup:

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

儲存並關閉檔案。無論何時啟動或重新啟動 TigerVNC 伺服器,都將自動執行上述命令。

~/.vnc/xstartup 檔案還需要具有執行許可權。執行以下命令以確保許可權正確:

chmod u+x ~/.vnc/xstartup

如果需要將附加選項傳遞給 VNC 伺服器,則可以建立一個名為 config 的檔案,並為每行新增一個選項。這是一個例子:

檔案 ~/.vnc/config

geometry=1920x1084
dpi=96

建立 Systemd 單元檔案

我們將建立一個 systemd 單元檔案,使我們能夠根據需要輕鬆啟動,停止和重新啟動 VNC 服務,與任何其他 systemd 服務相同。

開啟文字編輯器,將以下設定複製並貼上到其中。請務必更改第 7 行中的使用者名稱以匹配您的使用者名稱。

sudo nano /etc/systemd/system/vncserver@.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=buzheng
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 vncserver@1.service

符號 1 後面的數位 @ 定義了執行 VNC 服務的顯示埠。這意味著 VNC 伺服器將偵聽埠 5901 ,正如我們在上一節中討論的那樣。

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

sudo systemctl start vncserver@1.service

驗證服務是否已成功啟動:

sudo systemctl status vncserver@1.service
● vncserver@1.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/vncserver@.service; indirect; vendor preset: enabled)
   Active: active (running) since Thu 2018-08-16 19:05:54 UTC; 4s ago
  Process: 9893 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
 Main PID: 9900 (vncserver)
    Tasks: 0 (limit: 507)
   CGroup: /system.slice/system-vncserver.slice/vncserver@1.service
           ? 9900 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440x900 -alwaysshared -fg

連線到 VNC 伺服器

VNC 不是加密協定,可以進行封包嗅探。建議的方法是建立一個 SSH 隧道,該隧道將安全地將來自本地計算機的埠 5901 上的流量轉發到同一埠上的伺服器。

在 Linux 和 macOS 上設定 SSH 隧道

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

ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

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

不要忘了更換 username ,並 server_ip_address 與您的使用者名稱和伺服器的 IP 地址。

在 Windows 上設定 SSH 隧道

如果執行 Windows ,則可以使用 PuTTY SSH 用戶端設定 SSH 隧道。

開啟 Putty 並在 Host name or IP address 欄位中輸入您的伺服器 IP 地址。

在 Connection 選單框下,展開 SSH 並選擇 Tunnels 。輸入 VNC 伺服器埠(5901 在) Source Port 欄位,並輸入 server_ip_address:5901 在 Destination 現場和點選 Add 如下圖所示的影象按鈕:

返回 Session 頁面以儲存設定,這樣您每次都不需要輸入它們。現在,您只需選擇已儲存的對談並通過單擊 Open 按鈕登入到遠端伺服器。

使用 Vncviewer 連線

現在您已經設定了 SSH 隧道,現在可以開啟 Vncviewer 並連線到 VNC 伺服器了 localhost:5901 。

您可以使用任何 VNC 檢視器,如 TigerVNC , TightVNC , RealVNC , UltraVNC Vinagre 和 VNC Viewer for Google Chrome 。

在這個例子中,我們將使用 TigerVNC 。開啟 VNC 檢視器,輸入 localhost:5901 並單擊 Connect 按鈕。

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

您可以使用鍵盤和滑鼠從本地計算機開始與遠端 XFCE 桌面互動。

結論

到目前為止,您應該已經啟動並執行 VNC 伺服器,並且可以使用易於使用的圖形介面從本地桌面計算機輕鬆管理 Ubuntu 18.04 伺服器。

要設定 VNC 伺服器以啟動多個使用者的顯示,請使用該 vncserver 命令建立初始設定並設定密碼。您還需要使用其他埠建立新的服務檔案。

如果您有任何問題,請隨時發表評論。


IT145.com E-mail:sddin#qq.com