快轉到主要內容

noVNC,用任意網頁瀏覽器存取Linux VNC遠端桌面

分類   Linux系統 Self-hosting自架
標籤   VNC Remote Desktop
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

適用系統: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服務
#

  1. 你可以用Linux套件管理器安裝noVNC,或者直接從Github下載noVNC的指令稿到/usr/local/bin
cd ~

git clone https://github.com/novnc/noVNC.git

sudo mv noVNC /usr/local/bin
  1. 然後嘗試啟動noVNC服務,後面localhost接的5901通訊埠即為VNC伺服器使用的通訊埠
/usr/local/bin/noVNC/utils/novnc_proxy --vnc localhost:5901 --listen 6080
  1. 開放防火牆6080,這是連線到noVNC的通訊埠
sudo ufw allow 6080/tcp
  1. 用瀏覽器開啟http://Linux電腦IP:6080/vnc.html即可看到連線畫面。

  2. 測試連線成功後,按CTRL+C中止服務。

  3. 我們把noVNC做成一個使用者的Systemd service:

vim ~/.config/systemd/user/novnc.service
  1. 填入內容
[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
  1. 這樣noVNC就能隨時開關了。
systemctl --user daemon-reload

systemctl --user start novnc

3. 外部網路存取
#

我使用 內網穿透軟體

因為內網穿透會自動加密,故設定HTTPS的操作就不需要了。

參考資料
#

相關文章

Linux設定TigerVNC遠端桌面,用Systemd執行vncserver
分類   Linux系統 Self-hosting自架
標籤   VNC Remote Desktop
使用內網穿透軟體 + x11VNC架設免費Linux遠端桌面
分類   Linux系統 Self-hosting自架
標籤   Remote Desktop ZeroTier VNC
Sunshine:Linux版Moonlight教學,自架免費雲端串流遊戲服務+遠端桌面
分類   Linux系統 Self-hosting自架 Linux玩遊戲
標籤   Moonlight Game Streaming Cloud Gaming Remote Desktop Steam Linux

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。