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:
42
README.md
42
README.md
@@ -452,3 +452,45 @@ uci set firewall.@rule[-1].target='ACCEPT'
|
||||
uci commit firewall
|
||||
fw4 restart
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Tailscale(Headscale client)
|
||||
|
||||
路由器以 Tailscale client 身份加入自架的 Headscale tailnet(control server:`https://headscale.lotimmy.com`,user `mainnet`)。節點名 `openwrt`,tailnet IP `100.64.0.9`。
|
||||
|
||||
> ⚠️ **邊界路由器絕對不可用 `--accept-routes`。** `.10` 是站點 gateway,tailnet 上已有節點宣告 `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 規則。
|
||||
|
||||
Reference in New Issue
Block a user