前言
在上一篇文章中,我們使用了 Cloudflare Zero Trust 來讓 VNC 能在瀏覽器上控制。但假設我今天就沒有使用 Zero Trust 的習慣,我能不能創造出一個獨立的 VNC 平台,提供他人或自己使用?
因此這篇文章我們就要使用 Github 上的 novnc/noVNC 將他打造出來,而這個文章將會在 Linux 上操作。
下載 Repo
我們需要在一個資料夾中將他給 clone 進來,而我的習慣是將他放在 /var
底下,你也可以自己改變他。
mkdir /var/vnc && cd /var/vnc
使用 git clone
將 novnc/noVNC
下載進來。
git clone https://github.com/novnc/noVNC .
安裝 Websockify
當我們將他 clone 進來之後,他預設是沒有 Websockify 的,但是透過執行在 utils
底下的 novnc_proxy
,他就會自己去將 Websockify 給 clone 回來。
/bin/bash /var/vnc/utils/novnc_proxy
當他跑完之後,使用 Ctrl
+ C
退出即可。
開始使用
接著,我們就可以開始使用他啦!這邊我們會需要使用到該目錄底下的 utils/websockify
,而使用命令大概如下。
/bin/bash /var/vnc/utils/websockify/run --web /var/vnc 0.0.0.0:8080 10.10.10.1:5910
--web /var/vnc
的部分,是我們需要將他開成網頁伺服器,並指定目錄到 /var/vnc
。
0.0.0.0:8080
是網頁伺服器的埠號,那這邊我們就將他開在 8080
,你也可以依照你的喜好開在 80
、443
之類的。
10.10.10.1:5910
則是 PVE 伺服器的 IP 及我們開出來的 VNC 埠號。
當命令送出後,我們就可以訪問這個網站啦。打開瀏覽器並前往這台 Linux 的 8080
Port,選擇 vnc.html
,你應該就能看到這個畫面。
當你按下 Connect
之後,你應該就能看到你虛擬主機的畫面囉!旁邊也有一些控制項能夠使用。
順帶一提,如果你不滿意 noVNC 呈現的畫面、選項,你可以直接更改 /var/vnc/vnc.html
這個檔案,把他變成你喜歡的樣子。
包成服務
但是,當我們需要使用他的時候,我們就必須要執行這個命令。因此,我們可以將他包成服務,並把他丟在背景處理,之後我們就可以透過命令來控制他囉。
在 /etc/systemd/system
底下建立一個檔案 myvnc.service
,你也可以將它命名為你想要的樣子。
vim /etc/systemd/system/myvnc.service
貼上以下內容:
[Unit]
Description=My VNC Server
After=multi-user.target
[Service]
Type=simple
ExecStart=/bin/bash /var/vnc/utils/websockify/run --web /var/vnc 0.0.0.0:8080 10.10.10.1:5910
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
保存退出後,執行以下命令讓系統重新讀取。
sudo systemctl daemon-reload
現在,你可以透過以下命令來控制這項服務囉!
sudo systemctl start myvnc #啟動服務
sudo systemctl restart myvnc #重新啟動服務
sudo systemctl stop myvnc #停止服務
sudo systemctl enable myvnc #開機自動執行此服務
sudo systemctl disable myvnc #開機不執行此服務(預設)