一月下旬 OpenWrt 官方 LuCI repo 裡多了 luci-app-tailscale-community。
測了一下,確實可以用圖形界面滿足絕大部分的 Tailscale 設定管理需求,針對幾個小細節稍做紀錄。
哪版 OpenWrt 會有#
目前除了 master 分支外,只在 openwrt-25.12 分支上有,openwrt-24.10 分支上暫無。
可以預期 OpenWrt 25.12 上可以直接使用。OpenWrt 25.12 已經進入 release candidate 階段,想嘗鮮的有內建 LuCI 的 firmware 可以載來刷。
防火牆設定#
那個 Auto Configure Firewall 的按鈕按下去可以把 Tailscale 需要的 Firewall、Interface 基礎架構弄好,不過有可能會需要追加 zone forwarding 規則。
那個按鈕按下去預設會允許 tailscale ⇒ lan,但沒有允許 tailscale ⇒ wan。(詳細設定了什麼可以看 RPC code 裡的 methods.setup_firewall。)
什麼時候不用追加也沒關係#
如果你的網路架構長這樣,OpenWrt 比較像是其中一台 PC,無論去哪都是從 lan 出去。
graph TD A[Internet] --- B[Some other router] B --- C[PC] B ---|lan| D[OpenWrt]
這時候預設的規則就夠用。
什麼時候需要追加#
如果你的網路架構長這樣,又希望這台 OpenWrt 跑 Tailscale 的時候可以當 exit node。
graph TD A[Internet] ---|wan| B[OpenWrt] B ---|lan| C[PC 1] B ---|lan| D[PC 2]
因為要當 exit node 可以接到 internet 的話,需要走 wan 出去,這時候就要自己手動再允許 tailscale ⇒ wan 才會通。
用這個 App 管理的話要避免再用 CLI 去改 Tailscale 設定#
在這個 LuCI App 勾選完之後按 Save & Apply 其實會發生兩件事:
- 設定值被 UCI 存進
/etc/config/tailscale - 呼叫 RPC,跑
tailscale settailscaled會根據set後面帶的參數更新設定值,並存進/etc/tailscale/tailscaled.state
然後
- 開 LuCI App 頁面,選項有勾沒勾看的是 1
tailscaled跑起來,實際吃的設定值來自 2
自己手動跑 tailscale 指令做設定的話,要注意會不會造成 1、2 內容不一致的問題。
該 LuCI App 作者的文章#
在 OpenWrt 上优雅地管理 Tailscale:luci-app-tailscale-community - Tokisaki Galaxy的博客