2021-05-12 14:32:11
如何在 Ubuntu 18.04 上安裝和設定 VNC
本指南介紹了在 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 伺服器,如 TightVNC , TigerVNC 和 x11vnc 。每個 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 命令建立初始設定並設定密碼。您還需要使用其他埠建立新的服務檔案。
如果您有任何問題,請隨時發表評論。
相關文章