未連接螢幕時使用 VNC 連線

以下在 Ubuntu 20.04 LTS 測試成功。

魁儡影像驅動

系統預主機得接上螢幕,才能夠顯示畫面;當一台機器只有一個螢幕(或沒有螢幕),卻要多人使用 GUI 時,就需要假裝有好幾個螢幕。

安裝

可以直接透過下面指令安裝

sudo apt-get install xserver-xorg-video-dummy

如未能成功,可搜尋相關安裝包,再次進行安裝

apt-cache search xserver-xorg-video-dummy

設定

/usr/share/X11/xorg.conf.d/xorg.conf 建立設定檔,內容如下:

(解析度可自行調整)

Section "Device"
    Identifier  "Configured Video Device"
    Driver      "dummy"
EndSection

Section "Monitor"
    Identifier  "Configured Monitor"
    HorizSync 31.5-48.5
    VertRefresh 50-70
EndSection

Section "Screen"
    Identifier  "Default Screen"
    Monitor     "Configured Monitor"
    Device      "Configured Video Device"
    DefaultDepth 24
    SubSection "Display"
    Depth 24
    Modes "1024x800"
    EndSubSection
EndSection

安裝桌面環境

為講求輕量快速,建議安裝 Xfce 桌面環境。

sudo apt install xfce4 xfce4-goodies

輕量化 VNC Server

安裝

sudo apt install tightvncserver

設定密碼

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

設定 VNC Server

為了設定 VNC Server,得先停用該 instance

vncserver -kill :1

# 顯示結果如下
# Killing Xtightvnc process ID 37548

備份一下原本的啟動指令碼:

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

~/.vnc/xstartup 新增啟動指令碼:

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

加上執行權限:

chmod +x ~/.vnc/xstartup

重啟 VNC Server:

vncserver

# 顯示結果如下
# > New 'X' desktop is your_hostname:1

# > Starting applications specified in /home/jackkuo/.vnc/xstartup
# > Log file is /home/jackkuo/.vnc/jackkuo-Inspiron-3670:1.log

VNC 操作說明

在 VNC 中,預設 port 從 5901 開始。

第一個 instance 使用 display number :1 ,並佔用 port 5901,第二個 instance 則使用 :2 並佔用 port 5902,依此類推。

建立桌面

建立 VNC Session,也就是建立一個桌面環境

vncserver

安全起見,可以限定只在 127.0.0.1 可以連線

vnc server -localhost

查看當前有哪些桌面

tightvncserver 沒有提供簡易查詢 session 的指令,只好自己找:

ps -ef | grep vnc

中斷桌面

vncserver -kill :DISPLAY_NUM

連線

  • Mac 用戶可在 Finder 中按下 ⌘+K,範例輸入:

    vnc://127.0.0.1:59000
    
  • 反向通道

    ssh -N -L 59000:localhost:5901 YOUR_SERVER
    

參考連結

  1. How to Install and Configure VNC on Ubuntu 20.04
  2. vncserver(1) - Linux man page

comments powered by Disqus