為了要讓手機遠端連線到家裡的電腦,曾經試過很多家的遠端桌面,後來還是覺得自己架比較好,不想再讓資料經過第三方的伺服器了。所以找到了ZeroTier,它只負責處理連線的部份,連線有經過加密。
個人使用的話花不到半毛錢,ZeroTier只是一個類似VPN的服務,延遲還算可以接受。
ZeroTier開源跨平台,支援Linux / Windows / MacOS / Android / iOS / BSD系統。
使用ZeroTier達成內網穿透,讓不同網路下的裝置連線到同一個虛擬區網。這樣要進行ssh、vnc遠端桌面就簡單多了。
以下示範讓分處不同網路的Android手機可以遠端到家裡的Linux電腦。
1. 設定SSH、VNC、ZeroTier
電腦為Arch Linux,用systemd啟動系統服務。
- 安裝SSH,設定SSH開機自動啟動
|
|
- 安裝X11版的VNC server,可讓遠端連線直接登入目前的工作階段(session)而非開一個新桌面。
|
|
- 設定VNC server密碼
|
|
- 編輯
~/.config/autostart/x11vnc.desktop
,設定登入桌面後自動啟動x11vnc。用-geometry
降低螢幕解析度節省頻寬。
|
|
- 安裝ZeorTier,設定開機自動啟動
|
|
- 防火牆允許SSH、VNC、ZeroTier通過,UFW的指令如下:
|
|
- 一切設定好後重開機。
2. 新增ZeroTier網路
3. 讓電腦連上ZeroTier
- 執行ZeroTier
|
|
- 加入網路
|
|
- 開啟ZeroTier後台,在Members處的Auth框框打勾同意電腦加入網路,並取名方便識別。
4. 讓手機連上ZeroTier
到Google Play下載ZeroTier APP。
加入網路ID,啟動VPN連線
開啟ZeroTier後台,在Members處打勾同意手機加入網路,並取名識別。
到這邊ZeroTirer後台應該長這樣,目前有二個裝置。前面
172
開頭的是ZeroTier給的虛擬區域網路IP,最後面顯示的是真實IP。
5. 遠端登入示例
手機安裝Termux,安裝
openssh
套件。用ssh登入電腦,輸入ZeroTier的172
開頭的區網IP:同理,安裝Real VNC Viewer APP,登入虛擬區域網路上的vnc server:
附註:殺死所有VNC server的指令:
x11vnc killall