VNC是虛擬網絡計算的縮寫。它可以幫助您遠程控制Ubuntu機器。VNC服務器使用遠程幀緩沖協議(RFB)來遠程控制另一台計算機。
當技術支持人員使用鍵盤或鼠標時,VNC會將信號從鍵盤和鼠標傳輸到遠程服務器。它通過圖形用戶界面使管理工作更加輕松便捷。此外,VNC比圖形SSH和RDP連接更可靠。
本教程將介紹使用TightVNC在Ubuntu 20.04上設置和配置VNC的步驟。
1、安裝桌面環境和VNC服務器
首先,讓我們在Ubuntu服務器上安裝桌面環境,因為默認情況下未安裝它。有很多選擇:GNOME,MATE,XFCE等。
在本教程中,我們將選擇XFCE。這是一個輕量級的桌面環境,它有助於VNC連接穩定和流暢。
在您的Ubuntu服務器上,運行以下命令以更新軟件包列表:
$ sudo apt update
然后,讓我們安裝XFCE桌面環境:
$ sudo apt install xfce4 xfce4-goodies gnome-icon-theme
在這里,我使用的是TightVNC服務器,其他流行的VNC服務器是TigerVNC和x11vnc。
安裝tightvnc:
$ sudo apt install tightvncserver
接下來,讓我們運行VNC服務器實例,您必須為已安裝的服務器設置密碼:
$ vncserver
由於我們是在安裝后第一次啟動服務器,它將要求我們設置客戶端用來連接的密碼。它還將要求設置僅查看密碼,該密碼將允許用戶查看屏幕但不能與其交互。
請注意,密碼長度在6到8個字符之間。如果輸入較長的密碼,它將被自動刪節。
如果要更改VNC服務器的密碼,請運行:
$ vncpasswd
2、配置VNC服務器
首次啟動VNC服務器實例時,將創建初始配置文件:“〜/ .vnc / xstartup”,並且VNC服務器偵聽端口5901。我們將此端口稱為顯示端口。我們可以啟動VNC服務器的許多實例,每個實例都有自己的顯示端口:第一個顯示器偵聽端口5901,第二個顯示器偵聽端口5902,依此類推。
必須將VNC服務器配置為與Ubuntu服務器啟動一起運行。此外,您必須明確指出VNC服務器將連接到哪個桌面環境。
首先,讓我們停止當前在TCP端口5901上運行的VNC服務器實例:
$ vncserver -kill :1
然后備份當前配置文件:
$ cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
現在,使用您喜歡的編輯器修改“xstartup”文件,如下所示:
#!/bin/sh
xrdb $HOME/.Xresources
startxfce4 &
重新啟動VNC服務器:
$ vncserver -localhost
連接到VNC服務器
默認情況下,VNC服務器不使用安全協議。為了保護與遠程Ubuntu服務器的連接,您必須創建SSH隧道,並指示VNC客戶端通過該隧道連接到VNC服務器。
讓我們在本地計算機上建立SSH連接,以將流量轉發到VNC的“本地主機”。在本地計算機(macOS或Linux)上啟動終端,運行以下命令:
$ ssh -L 59000:localhost:5901 -C -l <user> <server_ip_address>
其中:
-L 59000:localhost:5901:本地計算機上的端口為59000將轉發到目標服務器:localhost:5901
-C:壓縮數據以加快連接速度
-l <user> <server_ip_address>:指示您要登錄的用戶以及Ubuntu 20.04服務器的IP地址。
3、在Windows上設置SSH隧道
如果運行Windows操作系統,則可以使用PuTTY SSH客戶端設置SSH隧道。
讓我們打開PuTTY,然后輸入Ubuntu服務器的IP地址:
接下來,展開子菜單“Connection > SSH > Tunnels”,在“Source port”源端口中輸入“ 5901”,在“Destination”目標中輸入“<server_ip_address>:5901”。然后,單擊“Add”添加按鈕,如下所示:
通過使用SSH隧道,與Ubuntu 20.04服務器的VNC連接僅允許可以SSH到該服務器的計算機。不允許每台機器僅連接到端口5901。
現在,您可以使用VNC客戶端連接到遠程Ubuntu服務器。在本教程中,我們使用VNC查看器。打開VNC客戶端,然后輸入服務器IP地址和端口5901:
您已成功連接到Ubuntu服務器的XFCE桌面:
您可以像在辦公室中使用物理服務器一樣控制服務器。例如,您可以訪問文件管理器,啟動程序或打開終端:
4、將VNC服務器設置為systemd服務
通過將VNC服務器作為系統服務運行,您可以隨時方便地啟動,停止或重新啟動它。
讓我們在Ubuntu服務器上的目錄“/etc/systemd/system/”中創建一個名為“ vncserver @ .service” 的新文件:
$ sudo vim /etc/systemd/system/vncserver@.service
將以下內容添加到文件“ vncserver @ .service”,並確保編輯第7、8、9和13行中的值以匹配您的環境。
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu
PIDFile=/home/ubuntu/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy = multi-user.target
然后,重新加載系統守護程序:
$ sudo systemctl daemon-reload
啟用服務:
$ sudo systemctl enable vncserver@1.service
其中:
@ 1.service:第一個顯示器與端口5901關聯。
輸出:
Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@1.service → /etc/systemd/system/vncserver@.service.
kill正在運行的實例:
$ vncserver -kill :1
Killing Xtightvnc process ID 3159
然后再次啟動該systemd服務:
$ sudo systemctl start vncserver@1
現在,您可以驗證服務是否正常運行:
$ sudo systemctl status vncserver@1
在本教程中,我們學習了如何在Ubuntu 20.04上安裝和配置VNC服務器。現在,您可以使用圖形用戶界面來遠程管理Ubuntu服務器。