docs: document Tailscale (Headscale) client on edge router

新增 Tailscale 一節:安裝/連線(強制 --accept-routes=false)、邊界路由器
禁用 accept-routes 的警告與根因、split-DNS 覆寫、WireGuard 救援步驟,以及
從 tailnet 管理 .10 需納入 fw4 zone 的註記。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-21 08:43:09 +08:00
parent 9cc6141b1a
commit 7023430f00

View File

@@ -452,3 +452,45 @@ uci set firewall.@rule[-1].target='ACCEPT'
uci commit firewall
fw4 restart
```
---
## TailscaleHeadscale client
路由器以 Tailscale client 身份加入自架的 Headscale tailnetcontrol server`https://headscale.lotimmy.com`user `mainnet`)。節點名 `openwrt`tailnet IP `100.64.0.9`
> ⚠️ **邊界路由器絕對不可用 `--accept-routes`。** `.10` 是站點 gatewaytailnet 上已有節點宣告 `192.168.42.0/24`;一旦 `--accept-routes``.10` 會把這條路由裝進 `tailscale0`**黑洞掉自己的 LAN、DNAT 轉送與站內 Headscale 控制面 → 全站斷線**且重開機不會自愈prefs 會保留。2026-06 曾因此造成 sev1。
### 安裝與連線
```sh
opkg update && opkg install tailscale # 約 9.6MB 下載overlay 佔用 ~30MB
/etc/init.d/tailscale enable
/etc/init.d/tailscale start
# 連線(必須 --accept-routes=false
tailscale up --login-server https://headscale.lotimmy.com --accept-routes=false
```
正常時 `tailscale status` 會出現 `Some peers are advertising routes but --accept-routes is false`,且 `ip route get 192.168.42.x` 應走 `dev br-lan`(不是 tailscale
> Headscale control 走 `headscale.lotimmy.com`(→ WAN `125.229.110.50`)會髮夾彎回站內 NPM憑證 CN 不符而連不上。已在 `.10` 的 `/etc/hosts` 加 split-DNS 覆寫,直接走內網 NPM
> ```
> 192.168.42.124 headscale.lotimmy.com
> ```
### 出事時的救援in-band 全斷)
`.10` 路由被劫持、LAN/tailnet/WAN 全進不去,改走 **WireGuard**`wg0: 10.0.0.1` 與被黑洞的 `192.168.42.0/24` 無關):
```sh
# 在任一 WG peer如 iPhone 10.0.0.3
ssh root@10.0.0.1
tailscale down # 立即撤掉劫持路由,全站恢復,免重開機
```
備援OpenWrt failsafe 模式(開機狂按 reset→ 網路線直插、靜態 `192.168.1.x``ssh root@192.168.1.1``/etc/init.d/tailscale disable`
### 從 tailnet 管理 `.10`(選用)
目前 `tailscale0` 未納入任何 fw4 zone所以 **tailnet → 路由器 SSH 會被 reject**(節點仍可被 `tailscale ping`)。若需從 tailnet 直接管理,將 `tailscale0` 加入 `lan` zone 或新增對應 input 規則。