Skip to main content

Tailscale 在 OpenWrt 有 LuCI App 了

Author
Kuan-Yi Li

一月下旬 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 規則。

那個按鈕按下去預設會允許 tailscalelan,但沒有允許 tailscalewan。(詳細設定了什麼可以看 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 出去,這時候就要自己手動再允許 tailscalewan 才會通。

用這個 App 管理的話要避免再用 CLI 去改 Tailscale 設定
#

在這個 LuCI App 勾選完之後按 Save & Apply 其實會發生兩件事:

  1. 設定值被 UCI 存進 /etc/config/tailscale
  2. 呼叫 RPC,跑 tailscale set
    • tailscaled 會根據 set 後面帶的參數更新設定值,並存進 /etc/tailscale/tailscaled.state

然後

  • 開 LuCI App 頁面,選項有勾沒勾看的是 1
  • tailscaled 跑起來,實際吃的設定值來自 2

自己手動跑 tailscale 指令做設定的話,要注意會不會造成 1、2 內容不一致的問題。

該 LuCI App 作者的文章
#

在 OpenWrt 上优雅地管理 Tailscale:luci-app-tailscale-community - Tokisaki Galaxy的博客