什麼是tailscale?
Tailscale就是基於Wireguard的一個聯網工具,無需公網地址,透過去中心化,實現各個節點之間點對點的連線.配置簡單友好,支援的各類平臺和客戶端.
相比較其他組網工具的優勢是什麼?
對比zerotier和wireguard,tailscale更容易連上官方的中轉伺服器,webui介面更簡單,適合小白上手,並且可以一鍵更新,不需要公網ip.zerotier在沒有ipv6的情況下很容易連線不上官方中轉伺服器導致裝置掉線.wireguard需要公網ip,配置繁瑣而且每次公網ip更換都需要重啟wireguard介面.
tailscale的缺點
如果有自建中轉伺服器的需求,tailscale需要80及443埠,對國內的使用者和國內的政策要求不太友好,雖然有其他解決辦法不過很麻煩不建議大家使用.如有自建節點的需求,建議使用zerotier自建moon伺服器.
下面介紹在OpenWrt上的配置過程。
1. 下載軟體
將Tailscale軟體包下載到指定目錄。進入tailscale的github releases地址,找到最新的軟體包,下載到本地。然後使用Winscp工具將下載的軟體上傳到OpenWrt的/tmp目錄下,也可以找到下載連結,直接使用wget命令下載.
wget https://github.com/adyanth/openwrt-tailscale-enabler/releases/download/v1.60.0-e428948-autoupdate/openwrt-tailscale-enabler-v1.60.0-e428948-autoupdate.tgz
2. 解壓軟體包
tar x -zvC / -f openwrt-tailscale-enabler-v1.60.0-e428948-autoupdate.tgz
3. 安裝依賴包
opkg update
opkg install libustream-openssl ca-bundle kmod-tun
4. 設定開機啟動,驗證開機啟動
/etc/init.d/tailscale enable
ls /etc/rc.d/S*tailscale*
5. 啟動tailscale
/etc/init.d/tailscale start
6. 獲取登入連結並配置路由
tailscale up
複製顯示的地址,並在瀏覽器中開啟,使用谷歌或微軟帳號登入Tailscale的管理主頁進行驗證。
不建議使用谷歌賬號,因為使用谷歌後你手機在外面連結需要先開科學再登入谷歌賬號才能連結上tailscale的app.
7. 開啟子網路由
在OpenWrt上輸入以下命令,開啟本地子路由。子網地址是OpenWrt的lan網路。10.1.2.0/24是我的子網,不要無腦複製我的!!!!!
tailscale up --advertise-routes=10.1.2.0/24 --accept-dns=false
在Tailscale的管理頁面上,單擊裝置列表右側的更多圖示,禁用金鑰過期,並開啟子網路由。
現在在OpenWrt上已經可以ping通其他Tailscale節點了,但其他節點還無法連線OpenWrt節點,還需要在OpenWrt上新增Tailscale介面。
8. 新增介面
在OpenWrt上新建一個介面,協議選靜態地址,裝置選tailscale0,地址為Taliscale管理頁面上分配的地址,掩碼255.0.0.0。防火牆區域選lan區域。
配置完成後如下圖所示:
9. 新增防火牆規則
將以下內容,加到防火牆的自定義規則當中,並重啟防火牆。
iptables -I FORWARD -i tailscale0 -j ACCEPT
iptables -I FORWARD -o tailscale0 -j ACCEPT
iptables -t nat -I POSTROUTING -o tailscale0 -j MASQUERADE