Login

Navigation

This articles is published 1120 days ago and last updated 1120 days ago, some information may be out of date.

TailScale 實現遠端訪問整段局域網(ZeroTier另一選擇)

home-network-after.png

前言:
之前的貼文分享了ZeroTier 實現遠端訪問局域網 ,最近發現一款軟件TailScale感覺設定上更簡單一點,僅僅透過帳號登入就可以接入TailScale網絡內。

TailScale是以Wireguard的協議加密,所以安全性更高,而且是P2P連線,流量不經伺服器,延遲更低、私密性更高。

目錄內容:
  1. 安裝及加入到TailScale網絡
  2. 透過設定其中1部TailScale的裝置為網關「Subnet Router」,可以訪問整個內網網段
1. 安裝及加入到「TailScale」網絡

如果是Windows用戶可以到官網下載安裝Tailscale,或者透過Chocolatey軟件包安裝。

TailScale_Windows_191122.png

choco install tailscale -y

TailScale_Windows_191751.png

雙擊桌面右下角的圖示

TailScale_Windows_193350.png

使用谷歌或者微軟賬號進行登錄

TailScale_Windows_193352.png

成功授權後可以查看分配到的IP地址


Linux用戶可以到Download · Tailscale找到相對應的CPU平台及架構安裝.

我以Ubuntu 20.04為範例

TailScale_Linux__192028.png

  • 添加 Tailscale 的金鑰和軟件倉庫地址
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.gpg | sudo apt-key add -
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.list | sudo tee /etc/apt/sources.list.d/tailscale.list
  • 安裝Tailscale
sudo apt update
sudo apt install tailscale
  • 啟用Tailscale 及透過網址驗證登入到Tailscale 網絡
sudo tailscale up

TailScale_Linux__192029.png

TailScale_Linux_121648.png

此頁面顯示成功授權

返回到Linux 終端查看分配到的IP地址

tailscale ip

TailScale_Linux_141410.png

TailScale_Linux_141412.png

Tailscale 網絡內的裝置可以互通

2. 透過設定其中1部「TailScale」的裝置為網關「Subnet Router」,可以訪問整個內網網段
因為不是每一部設備都可以安裝到Tailscale , 所以這樣設定「Subnet Route」的好處是家裡內網只要1部Linux裝置接入到Tailscale 網絡,其他所有的外網的Tailscale裝置都可以透過這部Linux裝置作為網關訪問家裡內網所有的設備,如: 印表機,路由器,伺服器等等。

設定步驟:

  • 啟用 Linux 上的 IP 轉發(IP Forwarding)

因為「Subnet Route」的設定需要用到 IP 轉發(IP Forwarding)特性

使用以下指命啟用

TailScale_Linux_141415.png

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
  • 以Linux作為「Subnet Route」(子網路由網關)連接到Tailscale
Tailscale 不需要防火牆配置,會自動管理規則,以允許轉發。設定過程也沒涉及到iptable,一條指令可以完成。
sudo tailscale up --advertise-routes=20.13.3.0/24
20.13.3.0/24替換為自己的網段,可以是IPV4或者IPV6。
  • 登入到網頁控制台 > Machines

TailScale_Linux_141447.png

TailScale_Linux_141448.png

TailScale_Linux_141457.png

Enable All允許轉發所有

TailScale_Linux_141502.png

TailScale_Linux_150236.png

TailScale_Linux_150237.png

基於安全特性,Tailscale每隔6個月需要重新授權裝置,作為「Subnet Router」(子網路由網關),建議停用。

  • 外網的Tailscale裝置線路測試

TailScale_Windows_150033.jpg

可以看到是經節點「Subnet Router」IP 100.101.41.50 接入到內網 20.13.3.1,延遲也很理想。

以下是使用內網IP連入家裡的各服務及裝置

TailScale_Windows_150753.jpg

TailScale_Windows_150758.png

TailScale_Windows_150800.png

TailScale_Windows_150802.jpg

TailScale_Windows_150804.png

TailScale_Windows_150806.png

測速

TailScale_Windows_150808.png

結語:
TailSaleZeroTier的使用場景上非常相近,沒有那個占優,根據自身網絡環境的連線質量較佳去選取。

透過ZeroTier 實現遠端訪問局域網的設定不是對所有自定網段有效,如今次的20.13.3.0/24的網段失效,Zerotier誤判為外網網段而不能訪問。而使用TailSale的設定可以實現遠端訪問網段為20.13.3.0/24的局域網。

參考資料: