Login

Navigation

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

TailScale 實現「出口節點」"Exit Node"(導向所有流量經這出口節點)

Non.Exit.Node.png

Exit.Node.png

前言:
當你使用公共網絡時,如在咖啡廰的WI-FI、酒店的網絡、或者釣魚WI-FI(不信任的網絡)等地方訪問家裡的設備、銀行服務或者公司的伺服器,很可能內容會給中間人截聽。

然而TailScale 實現「出口節點」"Exit Node"功能,在加密(基於WireGuard)的TailScale 網絡內導向所有流量經「出口節點」訪問,從而避免敏感資料給有心人收穫取。

目錄內容:
  1. 部署「出口節點」Exit Node
  2. 客戶端使用「出口節點」

    • Windows 客戶端
    • Android 客戶端
    • Linux 客戶端
1. 部署「出口節點」"Exit Node"
「出口節點」Exit Node暫時只支持在Linux系統的設備,這範例中以CentOS7平台部署「出口節點」。
  • 安裝倉庫管理軟件

TS_Nodes_Server_091936.png

sudo yum install yum-utils
  • 添加Tailscale 倉庫地址

TS_Nodes_Server_091951.png

sudo yum-config-manager --add-repo https://pkgs.tailscale.com/stable/centos/7/tailscale.repo
  • 安裝Tailscale

TS_Nodes_Server_092030.png

sudo yum install tailscale -y
  • 啟用Tailscale 服務

TS_Nodes_Server_092058.png

sudo systemctl enable --now tailscaled
  • 驗證及接入到Tailscale 網絡
sudo tailscale up

TS_Nodes_Server_092146.png

TS_Nodes_Server_092152.png

此頁面顯示成功授權

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

TS_Nodes_Server_092222.png

tailscale ip

  • 啟用 CentOS7上的 IP 轉發(IP Forwarding)
「出口節點」的設定需要用到 IP 轉發(IP Forwarding)特性

TS_Nodes_Server_092518.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
  • 發佈此裝置為「出口節點Exit Node

TS_Nodes_Server_092621.png

sudo tailscale up --advertise-exit-node
  • 網頁控制台管理節點
需要允許將此設備為「出口節點Exit Node

登入到網頁控制台管理頁面的 > Machines

TS_Nodes_Server_092633.png

圖示為未允許將此設備為「出口節點Exit Node

TS_Nodes_Server_092647.png

TS_Nodes_Server_092717.png

啟用Use as Exit node

TS_Nodes_Server_092730.png

圖示已經允許將此設備為「出口節點Exit Node

  • 停用「密鑰過期」功能
基於安全特性,Tailscale每隔6個月需要重新授權裝置,作為「出口節點Exit Node,建議停用,以防止定期重新驗證。

TS_Nodes_Server_092745.png

TS_Nodes_Server_092753.png

2. 客戶端使用「出口節點」
使用這個功能,TailScale的軟件版本不能低於1.6

Windows 客戶端使用「出口節點」

TS_Nodes_Windows_092824.png

未使用「出口節點」的公網IP地址為221.126.xxx.xxx

TS_Nodes_Windows_092905.png

TS_Nodes_Windows_094319.png

使用「出口節點」的公網IP地址為146.56.xxx.xxx

TS_Nodes_Windows_094832.png

出口的網速

Android 客戶端使用「出口節點」

TS_Nodes_Andorid_20211008102710 (Small).jpg

未使用「出口節點」的公網IP地址為221.126.xxx.xxx

TS_Nodes_Andorid_20211008102810 (Small).jpg

TS_Nodes_Andorid_20211008102835 (Small).jpg

TS_Nodes_Andorid_20211008102836 (Small).jpg

TS_Nodes_Andorid_20211008102904 (Small).jpg

TS_Nodes_Andorid_20211008102915 (Small).jpg

使用「出口節點」的公網IP地址為146.56.xxx.xxx

Linux 客戶端使用「出口節點」

sudo tailscale up --exit-node=100.100.57.95
其中100.100.57.95 為「出口節點」的 TailScale IP 地址`

測速

TS_Nodes_Linux_095542.png

結語:
如果內網的網絡限制而不能訪問某404區,基於導向所有流量經出口節點特性,應該可以跨越。(前提是「出口節點」Exit Node的地理位置要適中)
參考資料: