使用ZeroTier + VNC架設免費Linux遠端桌面
Linux系統
Self-hosting自架
remote desktop
ZeroTier
VNC

作者
Ivon Huang
目錄
為了要讓手機遠端連線到家裡的電腦,曾經試過很多家的遠端桌面,後來還是覺得自己架比較好,不想再讓資料經過第三方的伺服器了。
這個方案就是ZeroTier + VNC伺服器。
個人使用的話花不到半毛錢,使用 內網穿透軟體ZeroTier,讓不同網路下的裝置連線到同一個虛擬區網。這樣要進行SSH、VNC遠端桌面就簡單多了。
跟 Rustdesk和 Moonlight遠端桌面二個方案比較起來,VNC比較原始,但被廣泛使用於各大Linux系統。
作業系統:Arch Linux。桌面環境:KDE Plasma X11
1. 設定SSH #
- 安裝SSHD,設定SSH開機自動啟動
sudo pacman -S openssh
sudo systemctl enable sshd
sudo systemctl start sshd
- 允許SSH通過防火牆
sudo ufw allow ssh
sudo ufw reload
2. 設定VNC伺服器 #
VNC方案有x11VNC和TigerVNC,x11VNC可讓遠端連線直接登入目前的工作階段(session)而非開一個新桌面,且斷線後桌面仍會持續運作。
但x11VNC的先決條件是要登入桌面,然後才能離開電腦(可以關閉螢幕電源)。如果要不登入桌面環境,從SSH啟動VNC伺服器的話,請改用TigerVNC。
2.1. x11VNC #
x11VNC必須先在電腦前設定好,才可離開電腦。
- 安裝x11VNC
sudo pacman -S x11vnc net-tools
- 設定VNC伺服器密碼
x11vnc -storepasswd
- 新增
~/.config/autostart/x11vnc.desktop
,設定登入桌面後自動啟動x11vnc。用-geometry
降低螢幕解析度節省頻寬。
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Comment=
Exec=x11vnc -bg -auth guess -usepw -display :0 -forever -geometry 1280x720
StartupNotify=false
Terminal=false
Hidden=false
- 注意
Exec
這一段,若是使用SDDM+KDE桌面,就要改成下面這樣
Exec=x11vnc -bg -auth $(find /var/run/sddm/ -type f) -usepw -display :0 -forever -geometry 1280x720
- 防火牆開啟VNC通訊埠:
sudo ufw allow ssh
sudo ufw allow 5900:5910/tcp
sudo ufw reload
2.2. TigerVNC #
TigerVNC可隨時從SSH終端機啟動,無需登入桌面環境。它也可以從遠端設定。
- 安裝TigerVNC
sudo pacman -S tigervnc
- 新增vncserver設定檔
vim ~/.vnc/config
- 填入以下內容
geometry=1280x720
alwaysshared
- 設定VNC伺服器執行的桌面環境
touch ~/.vnc/xstartup
chmod +x ~/.vnc/xstartup
vim ~/.vnc/xstartup
- 設定啟動VNC伺服器後,開啟KDE Plasma工作階段
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADRESS
dbus-launch --exit-with-session startplasma-x11 &
- 防火牆開啟VNC通訊埠:
sudo ufw allow ssh
sudo ufw allow 5900:5910/tcp
sudo ufw reload
- SSH連線到電腦,從終端機執行以下指令,啟動VNC伺服器。通訊埠為
5901
。按CTRL+C中止。
vncserver :1
3. 連上ZeroTier #
參見 ZeroTier使用教學,在電腦與手機安裝ZeroTier,並設定電腦開機自動啟動ZeroTier服務。
安裝好後重開機。
4. 遠端登入示例 #
4.1. 電腦VNC客戶端 #
- 用 Flatpak安裝Remminna
flatpak install flathub org.remmina.Remmina
- 在位址欄選取VNC,輸入
遠端Zerotier虛擬IP:5901
連線
4.2. 手機VNC客戶端 #
手機安裝 AVNC或 Real VNC Viewer,在位址欄輸入
遠端Zerotier虛擬IP:5901
,登入遠端桌面。另外,手機安裝 Termux,安裝
openssh
套件即可用ssh登入電腦:
ssh <使用者名稱>@<輸入ZeroTier的虛擬區網IP>
參考資料 #
相關文章
Sunshine:Linux版Moonlight教學,自架免費雲端串流遊戲服務+遠端桌面
Linux系統
Self-hosting自架
remote desktop
Steam
Linux
ZeroTier
架設Nextcloud個人雲端硬碟 + 網頁版LibreOffice教學 (docker-compose + ZeroTier內網穿透)
Linux系統
Self-hosting自架
Nextcloud
LibreOffice
ZeroTier
既然ZeroTier記IP太麻煩,不如使用自訂域名
Linux系統
Self-hosting自架
Docker
ZeroTier