為什麼要在 OpenWrt 路由器上跑 OpenClash
多數人第一次接觸 Clash 生態,是在 Windows 或 macOS 裝圖形化用戶端、匯入機場訂閱後開始用。這條路很直覺,但家中有電視、平板、遊戲主機、智慧家電時,逐台設定代理幾乎不可行。OpenWrt 是針對路由器與嵌入式裝置的開源韌體,搭配社群維護的 OpenClash(基於 Clash 核心的 LuCI 前端與服務整合),可以把代理能力放在閘道層:區域網路內裝置只要正常取得 DHCP、預設閘道指向路由器,就能依規則分流或走節點,這正是「軟路由 Clash」搜尋量高的原因。
OpenClash 並非取代你在電腦上用的 Clash Verge 一類用戶端,而是場景互補:需要細部除錯、臨時切換本機規則時,用桌面用戶端;需要全屋裝置穩定共享、減少逐一登入訂閱的麻煩時,用路由器方案。兩者都依賴同一份機場訂閱邏輯,差別在於執行位置與透明代理的複雜度。
開始前:韌體、儲存空間與網路拓樸
在動手安裝 OpenClash 之前,建議先完成以下準備,可明顯降低「裝完打不開網頁」的挫折:
- 確認裝置與韌體:路由器需能刷入支援 opkg/LuCI 的 OpenWrt 衍生版,且架構(aarch64、mipsel、x86 等)與下載的 OpenClash/核心二進位相符。
- 儲存空間與掛載:訂閱、規則集與核心會佔用數十 MB 以上,內建快閃儲存若緊繃,可考慮 extroot 或將資料目錄掛到 USB/mSATA。空間不足時,訂閱更新或規則下載會靜默失敗。
- 備份設定:在 LuCI 的系統選單中匯出當前設定備份,方便在防火牆或 DNS 被改壞時一鍵還原。
- 時間同步:HTTPS 訂閱與憑證驗證依賴正確時間,請啟用 NTP 並確認路由器時區正確。
- WAN 連線型態:了解你是 PPPoE、DHCP 或固定 IP,後續若需「繞過本機位址」或自訂 DNS,才不會和營運商提供的 DNS 打架。
安裝 OpenClash:LuCI 套件與相依項目
OpenClash 的安裝方式隨社群發行管道而異,常見有三類:透過內建模擬軟體來源安裝 opkg 套件、使用開發者在 GitHub Releases 釋出的 ipk 手動上傳安裝,或在整合版韌體中已預裝。以下流程涵蓋最常見的手動安裝邏輯:
- 登入 LuCI,進入「系統」→「軟體」更新套件清單(點選更新列表)。網路需暢通,若在中國大陸環境,可能要設定可供路由器存取的鏡像或離線匯入。
- 搜尋並安裝 OpenClash 所依賴的基礎套件(依版本說明為準,通常包含核心函式庫、ca-bundle、可能需要的 iptables/iptables-mod-extra 或 nft 相關模組)。少裝一項都可能導致服務啟動即退出。
- 下載與你OpenWrt 架構、版本號相符的 OpenClash ipk,在「軟體」頁面上傳安裝,或使用 SSH 執行
opkg install /tmp/openclash_*.ipk。 - 安裝完成後重新整理 LuCI,側邊選單應出現「服務」底下的 OpenClash 項目;若沒有,清除瀏覽器快取或重新登入。
- 第一次進入 OpenClash 頁面時,介面可能提示核心缺失,此時先不要急著開啟代理,按下一節方式取得核心。
核心下載、版本選擇與首次啟動
OpenClash 需要本機能執行的 Clash 或 Mihomo 核心檔。介面通常提供一鍵下載或手動上傳;若路由器在 download.github.com 等網址上連線受限,會卡在下載步驟。此時可改用在電腦下載後透過 SCP 傳到路由器指定目錄,再在 OpenClash 中指向該路徑。
選擇核心時,請優先採用你的訂閱供應商建議或 OpenClash 文件標示的預設分支。舊版設定檔用在新核心、或誤用 Meta 專用欄位卻跑傳統核心,常見症狀是服務能啟動但規則不生效、或介面顯示紅字錯誤。
- 下載完成後,在狀態頁確認核心已啟用且進程未反覆重啟。
- 若日誌出現
permission denied,檢查執行檔是否具備可執行位元與正確的擁有者。 - 記憶體偏小(如僅有一百多 MB RAM)的機種,同時載入巨大規則集可能 OOM,必要時縮小規則集或關閉不必要功能。
OpenWrt 訂閱匯入與設定檔啟用
這一步與桌面用戶端類似:機場後台複製的訂閱網址貼到 OpenClash 的訂閱區塊,儲存後手動或排程更新。差別在於路由器上沒有圖形化預覽節點Latency 的舒適度,建議更新後到「偵錯/連線」或「日誌」區塊確認沒有解析錯誤。
- 開啟 OpenClash →「設定管理」或「訂閱資訊」同類頁籤(依版本為準)。
- 新增一筆訂閱:貼上 URL、命名、選擇是否使用訂閱轉換節點(部分機場需 UA 或跳過證書驗證,依機場說明勾選)。
- 儲存後點「更新訂閱」,確認訊息顯示節點數量正常,而非空白或零。
- 在「設定文件管理」中產生或選取要使用的 YAML,使其引用剛才的訂閱段落;套用後讓服務載入該設定檔。
- 初次成功後,建議設定定期更新間隔(例如六到十二小時),以免節點下線後長時間無人知曉。
若你從本機 Clash Verge 匯出完整設定檔再上傳到路由器,請注意其中本機路徑、TUN 介面名稱、以及僅適用於桌面系統的欄位,搬到 OpenWrt 往往要刪改,否則輕則忽略、重則無法啟動。
DNS、執行模式與「繞過中國大陸」觀念
新手最容易卡關的是 DNS 與 Fake-IP:瀏覽器顯示連得上、實際卻打不開站,或只有部分 App 異常。OpenClash 通常提供多種 DNS 模式與本機 DNS 劫持選項,建議第一次跟隨預設安案再微調。
- 紅/藍等執行模式:不同版本對「僅代理」「混合」「相容」命名不一,實質是結合 iptables/nft 與 DNS 轉發的組合。閱讀該版 Wiki 的對照表,比憑感覺點選更穩。
- 繞過中國大陸 IP:若訂閱自帶規則,啟用後可讓國內站直連、境外走代理,減少延遲與機場流量。
- 本機或路由器管理介面:務必加入「不走代理」名單,否則可能連 LuCI 都打不開。
Luci 介面中的應用過濾與策略覆寫
搜尋「Luci 應用過濾」的讀者,多半希望指定某些裝置或程式走直連/走代理,而不是全網一視同仁。OpenClash 與上游核心透過規則與策略群組完成這件事:可以在設定檔中為特定位址、網域、程序特徵(若核心與規則支援)定義不同出口。
實務上可從這幾個方向著手:在 LuCI 裡為固定 DHCP 租約的裝置分配區段,並在 Clash 規則裡用 IP-CIDR 或對應的邏輯將該段設為直連;或針對遊戲主機的完整 MAC 做靜態 IP,再將特定 UDP/TCP 目的埠規則指向 DIRECT。界面上的「覆寫」或「自訂」區塊適合放這類片段,而不要直接改壞訂閱產生的主體,以便下次更新訂閱時可再次合併。
若你使用的機場內建細緻的媒體分流與去廣告規則,路由器端盡量保持簡潔:規則層級過多會讓除錯困難,也增加記憶體壓力。
驗證:讓區網裝置第一次成功走代理
完成設定後,建議按此順序驗證,能快速鎖定問題層級:
- 在路由器本機用
curl或wget測試能否透過訂閱節點連到測試網址(若 Shell 預設不走代理,可僅測 WAN 是否通)。 - 在 OpenClash 日誌中觀察是否有規則命中與連線錯誤碼。
- 將測試用的筆電或手機只連此路由器 Wi-Fi,關閉行動數據與 VPN App,造訪公開的 IP 查詢站,確認出口位址為節點所在區域。
- 嘗試一般瀏覽與一種即時通訊或串流服務,觀察是否需切換 UDP 相關選項(視節點與模式而定)。
只要上述第四步穩定,就代表閘道級 OpenClash 已達到「首次節點可用」。之後再慢慢最佳化規則與排程更新即可。
常見問題與排錯方向
代理開啟後區網全斷或極慢
先暫停 OpenClash,恢復可上網後檢查:是否重複劫持 DNS、透明代理埠是否與其他服務衝突、防火牆轉發是否形成迴圈。也可先改為僅 DNS 或僅埠代理做對照測試。
訂閱顯示更新成功但沒有節點
多半是下載內容並非有效 YAML/Base64,而是網頁驗證或錯誤訊息。用瀏覽器或 curl -v 在路由上直接請求訂閱網址可看出是否被導向登入頁。若機場要求固定 User-Agent,記得在訂閱選項中填寫。
LuCI 打不開但外網似乎正常
檢查「繞過本機位址」與防火牆 INPUT 鏈;確認管理埠未被當成代理流量轉送到錯誤節點。必要時透過 SSH 關閉 OpenClash 服務再行修正。
路由器方案的邊界與桌面用戶端互補
OpenWrt 上的 OpenClash 能力強大,但維護成本也實在:韌體升級、核心相容、規則集體積與記憶體、營運商對 UDP 的限制,都會讓「看似裝好」卻在某些 App 上偶發失敗。相較之下,專為桌面與行動裝置設計的 Clash 用戶端往往在一鍵匯入訂閱、介面引導、節點健康提示上更省事,不必半夜為了救路由器而重刷。
若你暫時不想折騰軟路由,或需要在外出時快速切換節點,可優先選擇輕量的本機方案;本站整理的 Clash 用戶端同樣支援主流訂閱格式與即時檢測。相較部分工具介面過時、匯入失敗又欠缺日誌說明的狀況,挑一個持續維護、對新手友善的用戶端,能省下大量試錯時間。若你希望先從電腦或手機把訂閱與規則跑順,再決定是否上閘道,不妨到 Clash 用戶端下載頁 取得適用於你裝置的版本,再依本教學把同一套訂閱掛進 OpenClash,路徑會清晰許多。立即免費下載 Clash,讓訂閱匯入與節點監測不再是瓶頸。