網絡 / VPN

Tailscale Exit Node 快速設定(阿里雲)

在阿里雲輕量伺服器上架設 Tailscale Exit Node 的完整指南。解決了阿里雲內網與 Tailscale 衝突的問題,採用 netfilter-mode=nodivert 方案繞過。

使用的技術

TailscaleWireGuardiptablesNATLinux NetworkingVPN阿里雲

背景

阿里雲輕量伺服器的內網結構與 Tailscale 預設的 netfilter 設定會產生衝突,導致 Exit Node 無法正常運作。 透過 --netfilter-mode=nodivert 手動管理 NAT 規則,成功繞過此限制。

伺服器端設定步驟

1. 安裝與系統設定

# 安裝 Tailscale
curl -fsSL https://tailscale.com/install.sh | sh

# 開啟 IP 轉發
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p

# 啟動服務
sudo systemctl enable --now tailscaled

2. 啟動 Exit Node(避開阿里雲內網衝突)

sudo tailscale up \
  --netfilter-mode=nodivert \
  --accept-dns=false \
  --advertise-exit-node

3. 手動補上 NAT 與轉發規則

ETH=$(ip route | grep default | awk '{print $5}')

sudo iptables -t nat -A POSTROUTING -s 100.64.0.0/10 -o $ETH -j MASQUERADE
sudo iptables -A FORWARD -i tailscale0 -o $ETH -j ACCEPT
sudo iptables -A FORWARD -i $ETH -o tailscale0 -m state \
  --state RELATED,ESTABLISHED -j ACCEPT

4. 持久化設定(防重啟遺失)

sudo apt install iptables-persistent -y
sudo netfilter-persistent save

⚠️ 必做:前往 Tailscale Admin Console, 找到該節點 → Edit route settings → 開啟 "Use as exit node" → 儲存

Windows 客戶端

# 安裝
winget install Tailscale

# 手動設定 DNS(避免斷網)
# Win+R → ncpa.cpl → 右鍵 Tailscale 網卡 → IPv4
# 首選 DNS: 1.1.1.1 / 替代: 8.8.8.8

# 連接 Exit Node
tailscale up --exit-node=testali --reset

日常使用

啟用出口tailscale up --exit-node=testali --reset
關閉出口tailscale set --exit-node=
測試 IPcurl https://api.ipify.io
測試地域curl https://ip.aliyun.com

故障快速修復

# Windows 斷網 / DNS 解析失敗
netsh winsock reset
netsh int ip reset
ipconfig /flushdns
Restart-Service Tailscale
Start-Sleep 3
tailscale up --exit-node=testali --reset

# 伺服器重啟後規則消失
sudo netfilter-persistent restore
sudo systemctl restart tailscaled