文章目錄
- 1 準備工作
- 2 安裝ubuntu遠端桌面
-
- 2.1 Gnome安裝
- 2.2 xface安裝
- 3 安裝VNC伺服器
- 4 配置VNC服務
-
- 4.1 VNC密碼設定
- 4.2 啟動腳本設定
- 4.3 啟動VNCSERVER
- 4.4 檢視開啟的vncserver
- 4.5 停止VNCserver
- 5 Mobaxterm連接配接VNC服務
- 參考
本文應用場景是有遠端伺服器上開發或本地及遠端容器開發過程中需要可視化效果的,可以按照本文進行安裝。比如深度學習開發,對圖檔和視訊資料需要進行檢視。
VNC代表虛拟網絡計算。從本質上講,它是一個遠端顯示系統,不僅允許您在目前運作的計算機上檢視桌面環境,而且從Internet上的任何地方的不同體系結構的計算機中檢視遠端的“桌面”環境。
VNC Server是用于在Linux環境中執行VNC(虛拟網絡計算)桌面的軟體。不同于Windows作業系統,隻需激活遠端桌面;在Linux上,必須安裝VNC Server才能實時遠端桌面。VNC伺服器有很多軟體,這裡讨論如何使用TigerVNC安裝VNC伺服器。關于tigervnc與其它工具的差別,不做區分。
1 準備工作
首先準備一個Ubuntu 伺服器,可以是18.04或者是20.04,本文在這兩種系統中都有進行測試并通過。該伺服器它可以通過SSH遠端或直接操作螢幕上的終端。下載下傳軟體需要有網際網路連接配接。對于計算機上的VNC用戶端,可以使用VNC Viewer應用程式,例如RealVNC,這個軟體很小,幾十M。這裡我們使用moba xterm,這個軟體是免費的,同時有ssh,vncserver功能,因為一直要用ssh,是以隻用這一個軟體也可以。
2 安裝ubuntu遠端桌面
本節提供兩種桌面的安裝第一種是gonme,每二種是xface4。相比而言xface更加輕量級,安裝過程中gonme安裝2.2G依賴,xface4安裝0.9G依賴。對遠端而言,使用xface4更合适。在測試過程中,遠端伺服器上這兩種桌面是都可以正常使用的,但在容器中隻有xface4可以正常使用,但gonme并不能每次都使用,有時隻有黑屏。
另外要說明的是伺服器上通常是通過指令行管理的,預設情況下未安裝桌面環境。如果您運作桌面版本的Ubuntu,請跳過此步驟。目前Ubuntu 20.04存儲庫中提供了各種桌面環境,一種選擇是安裝Gnome,它是Ubuntu 中的預設桌面環境。另一個選擇是安裝Xfce。它是一種快速、穩定且輕巧的桌面環境,非常适合在遠端伺服器上使用。
2.1 Gnome安裝
sudo apt-get update
sudo apt-get install ubuntu-gnome-desktop
安裝過程中gdm3和lightgdm可以任選一個,隻是顯示風格的不同,我是選的gdm3.
啟動gnome桌面服務,并確定它在啟動時運作。
sudo systemctl start gdm
sudo systemctl enable gdm
2.2 xface安裝
sudo apt-get update
sudo apt-get xfce4 xfce4-goodies
桌面的安裝過程會花一段時間,特别是在容器中,耐心等待安成即可。另外這兩個桌面是可以同時安裝的,使用時進行選擇,當然同時安裝是沒必要的。如果使用桌面版ubuntu系統直接使用gnome時無須安裝,這樣也簡單一些。
3 安裝VNC伺服器
Ubuntu 存儲庫中有幾種不同的VNC伺服器,例如TightVNC、TigerVNC和x11vnc。每個VNC伺服器在速度和安全性方面都有各自的優缺點。
我們将安裝TigerVNC,這是一個主動維護的高性能VNC伺服器,輸入以下指令以安裝軟體包:
sudo apt-get install xserver-xorg-core
sudo apt-get install tigervnc-standalone-server tigervnc-xorg-extension tigervnc-viewer
sudo apt-get install gsfonts-x11 xfonts-base xfonts-75dpi xfonts-100dpi
4 配置VNC服務
4.1 VNC密碼設定
這一步設定連接配接到VNC伺服器時所使用的VNC密碼。使用以下指令:
vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
輸入密碼,然後确認。如果需要,您可以将密碼設定為隻讀權限。如果不需要,可以按N鍵确認。
密碼檔案存儲在~/.vnc目錄中,如果不存在則建立該目錄。
如果vncpasswd指令無效,請使用vncserver指令,輸入密碼,然後終止vncserver。
vncserver
vncserver -kill :*
4.2 啟動腳本設定
接下來,我們将建立一個啟動腳本作為初始配置,将在激活VNC伺服器時執行。使用vim指令建立~/.vnc/xstartup檔案。
vim ~/.vnc/xstartup
然後填寫以下代碼:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &
#dbus-launch --exit-with-session startxfce4 &
以上内容中有要加注釋的話可以直接加#号,最後一行依據你所選用的桌面類型來進行配置。儲存并退出後,給~/.vnc/xstartup檔案添加可執行權限:
sudo chmod a+x ~/.vnc/xstartup
4.3 啟動VNCSERVER
vncserver :1 -localhost no -geometry 1920x1080 -depth 24
# -localhost no是為了讓其他計算機可以通路,而不僅僅是本地。沒有這個option的話就隻能本地VNC連接配接。從下面vnc監聽狀态可以看出,監聽位址是0.0.0.0,而不是預設的127.0.0.1。
# vncserver -localhost no
# 不添加:1也可以,預設是1,可以手動選擇
上述選項将建立一個會話,允許外部連接配接具有1920x950像素分辨率和清晰度24.
在Ubuntu作業系統上,分辨率可以用xrandr -q指令檢視.容器中無法檢視。
您可以根據自己的喜好配置分辨率和清晰度。
傳回内容如下:
[email protected]:~# vncserver :1 -localhost no -geometry 1920x950 -depth 24
New '07265f50ffb2:1 (root)' desktop at :1 on machine 07265f50ffb2
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/07265f50ffb2:1.log
Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /root/.vnc/passwd 07265f50ffb2:1 to connect to the VNC server.
在上面的輸出中,請注意主機名後面的:1。這表示正在運作vnc伺服器的顯示端口号。在此示例中,伺服器在TCP端口5901(5900+1)上運作。如果使用vncserver建立第二個執行個體,它将在下一個可用端口(即:2)上運作,這意味着伺服器在端口5902(5900+2)上運作。
要記住的重要一點是,在使用VNC伺服器時,:X是表示5900+X的顯示端口。
4.4 檢視開啟的vncserver
可以通過輸入以下指令擷取所有目前正在運作的VNC會話的清單:
vncserver -list
傳回内容:

4.5 停止VNCserver
使用帶有-kill選項和伺服器編号作為參數的vncserver指令停止VNC執行個體:
vncserver -kill :1 #隻殺死5901
vncserver -koll :* #合部殺死
顯示為:
5 Mobaxterm連接配接VNC服務
輸入Ip和端口即可。容器要使用與主機映射的端口号如:
如上指令啟動的容器要使用端口8002,使用者名是root.
測試效果為:
上圖為容器中ubuntu20.04 xface4界面
上圖為遠端伺服器ubuntu18.04中xface4界面。
上圖為gnome桌面。
參考
- https://www.ywnz.com/linuxyffq/8969.html
- https://baijiahao.baidu.com/s?id=1645514514391414083&wfr=spider&for=pc
- https://blog.csdn.net/evan_one/article/details/118059926