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


原文地址請點擊

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

介紹

虛擬網絡計算(VNC)是一種連接系統,使您可以使用鍵盤和鼠標與遠程服務器上的圖形桌面環境進行交互。對於尚不熟悉命令行的用戶,它使在遠程服務器上管理文件,軟件和設置更加容易。

在本指南中,您將在Ubuntu 18.04服務器上設置VNC服務器,並通過SSH隧道安全地連接到該服務器。您將使用TightVNC,這是一種快速,輕便的遠程控制程序包。此選擇將確保即使在較慢的Internet連接上,我們的VNC連接也將保持平穩。

先決條件

要完成本教程,您需要:

安裝桌面環境和VNC服務器

默認情況下,Ubuntu 18.04服務器未安裝圖形桌面環境或VNC服務器,因此我們將從安裝它們開始。具體來說,我們將安裝適用於最新Xfce桌面環境的軟件包以及官方Ubuntu存儲庫中提供的TightVNC軟件包。

在服務器上,更新軟件包列表:

sudo apt update

現在,在您的服務器上安裝Xfce桌面環境:

sudo apt install xfce4 xfce4-goodies

安裝完成后,安裝TightVNC服務器:

sudo apt install tightvncserver

要在安裝后完成VNC服務器的初始配置,請使用以下vncserver命令來設置安全密碼並創建初始配置文件:

vncserver

系統將提示您輸入並驗證密碼以遠程訪問您的計算機:

OutputYou will require a password to access your desktops.

Password:
Verify:

密碼長度必須介於六到八個字符之間。超過8個字符的密碼將被自動截斷。

驗證密碼后,您可以選擇創建僅查看密碼。使用僅查看密碼登錄的用戶將無法使用其鼠標或鍵盤來控制VNC實例。如果您想向使用VNC服務器的其他人演示某些內容,這是一個有用的選項,但這不是必需的。

然后,該過程為服務器創建必要的默認配置文件和連接信息:

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

New 'X' desktop is your_hostname:1

Creating default startup script /home/sammy/.vnc/xstartup
Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

現在,讓我們配置VNC服務器。

配置VNC服務器

VNC服務器啟動時需要知道要執行哪些命令。具體來說,VNC需要知道它應該連接到哪個圖形桌面。

這些命令位於主目錄下xstartup.vnc文件夾中的配置文件中。啟動腳本是vncserver在上一步中運行時創建的,但是我們將創建自己的腳本來啟動Xfce桌面。

首次設置VNC時,它將在port上啟動默認服務器實例5901。此端口稱為顯示端口,VNC將該端口稱為:1。VNC可以在其他顯示器端口,如啟動多個實例:2:3等。

因為我們將要更改VNC服務器的配置方式,所以首先5901使用以下命令停止在端口上運行的VNC服務器實例:

vncserver -kill :1

輸出將看起來像這樣,盡管您將看到一個不同的PID:

Killing Xtightvnc process ID 17648

在修改xstartup文件之前,請備份原始文件:

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

現在創建一個新xstartup文件,並在文本編輯器中將其打開:

nano ~/.vnc/xstartup

每當啟動或重新啟動VNC服務器時,該文件中的命令就會自動執行。如果尚未啟動桌面環境,我們需要VNC來啟動它。將以下命令添加到文件中:

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

文件中的第一個命令xrdb $HOME/.Xresources告訴VNC的GUI框架讀取服務器用戶的.Xresources文件。.Xresources用戶可以在其中更改圖形桌面的某些設置,例如終端顏色,光標主題和字體渲染。第二個命令告訴服務器啟動Xfce,在這里您將找到輕松管理服務器所需的所有圖形軟件。

為了確保VNC服務器能夠正確使用此新啟動文件,我們需要使其成為可執行文件。

sudo chmod +x ~/.vnc/xstartup

現在,重新啟動VNC服務器。

vncserver

您將看到類似於以下的輸出:

New 'X' desktop is your_hostname:1

Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

完成配置后,讓我們從本地計算機連接到服務器。

安全地連接VNC桌面

連接時,VNC本身不使用安全協議。我們將使用SSH隧道安全地連接到我們的服務器,然后告訴我們的VNC客戶端使用該隧道,而不是直接建立連接。

在本地計算機上創建SSH連接,以安全地轉發到localhostVNC連接。您可以使用以下命令通過Linux或macOS上的終端執行此操作:

ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

-L開關指定的端口綁定。在這種情況下,我們將5901遠程連接的端口綁定到5901本地計算機上的端口。該-C開關啟用壓縮,而該-N開關告訴ssh我們不想執行遠程命令。該-l開關指定遠程登錄名。

記得替換sammy,並your_server_ip與您的服務器的sudo非root用戶名和IP地址。

如果使用的是圖形SSH客戶端(如PuTTY),請your_server_ip用作連接IP,並localhost:5901在程序的SSH隧道設置中將其設置為新的轉發端口。

隧道運行后,使用VNC客戶端連接localhost:5901。系統將提示您使用在步驟1中設置的密碼進行身份驗證。

接下來,我們將VNC服務器設置為服務。

將VNC作為系統服務運行

接下來,我們將VNC服務器設置為系統服務,以便我們可以像其他任何服務一樣根據需要啟動,停止和重新啟動它。這還將確保在服務器重新引導時VNC啟動。

首先,/etc/systemd/system/vncserver@.service使用您喜歡的文本編輯器創建一個新的單元文件:

sudo nano /etc/systemd/system/vncserver@.service

@名稱末尾的符號將使我們傳遞可在服務配置中使用的參數。我們將使用它來指定我們在管理服務時要使用的VNC顯示端口。

將以下行添加到文件中。確保在PIDFILE的值中更改UserGroupWorkingDirectory和用戶名的值以匹配您的用戶名:

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=orangepi
Group=orangepi3
WorkingDirectory=/home/orangepi

PIDFile=/home/orangepi/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

ExecStartPre如果該命令已在運行,它將停止VNC。該ExecStart命令將啟動VNC並將顏色深度設置為24位顏色,分辨率為1280x800。您也可以修改這些啟動選項,以滿足您的需求。

保存並關閉文件。

接下來,使系統知道新的單位文件。

sudo systemctl daemon-reload

啟用單位文件。

sudo systemctl enable vncserver@1.service

1以下的@符號表示,其顯示編號的服務應該出現過,在這種情況下,默認:1為在步驟2中進行了討論..

如果VNC服務器的當前實例仍在運行,請停止它。

vncserver -kill :1

然后像啟動其他任何systemd服務一樣啟動它。

sudo systemctl start vncserver@1

您可以驗證它是否使用以下命令啟動:

sudo systemctl status vncserver@1

如果正確啟動,則輸出應如下所示:

Output● vncserver@1.service - Start TightVNC server at startup
   Loaded: loaded (/etc/systemd/system/vncserver@.service; indirect; vendor preset: enabled)
   Active: active (running) since Mon 2018-07-09 18:13:53 UTC; 2min 14s ago
  Process: 22322 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS)
  Process: 22316 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS)
 Main PID: 22330 (Xtightvnc)

...

重新啟動計算機后,您的VNC服務器現在將可用。

再次啟動SSH隧道:

ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

然后使用VNC客戶端軟件建立新連接localhost:5901以連接到計算機。

結論

現在,您已在Ubuntu 18.04服務器上啟動並運行了安全的VNC服務器。現在,您將可以使用易於使用且熟悉的圖形界面來管理文件,軟件和設置,並且可以遠程運行Web瀏覽器等圖形軟件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM