適用系統:Ubuntu 24.04以上 & Debian 12以上
noVNC為HTML5寫的noVNC客戶端,讓我們可以直接用網頁瀏覽器存取VNC伺服器,進入Linux的遠端桌面,無需特地安裝VNC客戶端(如RealVNC、Remmina之類的)。如此一來可以方便手機平板用戶操作。
但是,noVNC不是一個獨立的VNC伺服器,它只能用Websockify轉發,所以得搭配其他VNC伺服器使用。
1. 啟動VNC伺服器#
常見的VNC伺服器有兩種,請讓其中一種服務跑起來,再接續設定noVNC。
x11VNC:可以在目前的X工作階段開一個VNC伺服器,接續離開電腦前的畫面,並且能吃到GPU加速。電腦必須接上螢幕。
TigerVNC:能夠從SSH命令行headless模式執行,適用沒接螢幕的電腦。
2. 設定noVNC服務#
- 你可以用Linux套件管理器安裝noVNC,或者直接從Github下載noVNC的指令稿到
/usr/local/bin
:
cd ~
git clone https://github.com/novnc/noVNC.git
sudo mv noVNC /usr/local/bin
- 然後嘗試啟動noVNC服務,後面localhost接的5901通訊埠即為VNC伺服器使用的通訊埠
/usr/local/bin/noVNC/utils/novnc_proxy --vnc localhost:5901 --listen 6080
- 開放防火牆6080,這是連線到noVNC的通訊埠
sudo ufw allow 6080/tcp
用瀏覽器開啟
http://Linux電腦IP:6080/vnc.html
即可看到連線畫面。測試連線成功後,按CTRL+C中止服務。
我們把noVNC做成一個使用者的Systemd service:
vim ~/.config/systemd/user/novnc.service
- 填入內容
[Unit]
Description=noVNC service
After=syslog.target network.target
[Service]
ExecStart=/usr/local/bin/noVNC/utils/novnc_proxy --vnc localhost:5901 --listen 6080
[Install]
WantedBy=default.target
- 這樣noVNC就能隨時開關了。
systemctl --user daemon-reload
systemctl --user start novnc
3. 外部網路存取#
我使用 內網穿透軟體。
因為內網穿透會自動加密,故設定HTTPS的操作就不需要了。