為什麼「路由跑 Clash」還會跟電腦客戶端互相干擾?

路由器級代理的本意,是讓內網裝置不必逐台設定就能走同一套分流。但若家裡同時有人習慣在筆電上開 Clash VergeClashX 這類桌面客戶端,流量可能在很短的距離內被轉發兩次:先被桌面 TUN 或系統代理攔一次,再進入路由器上的透明代理或連接埠轉發鏈。結果不一定是立即斷線,卻常出現延遲飄高、少數網站 TLS 握手異常、或只有某幾台電腦「怪怪的」。

另一個高頻問題是DNS 路徑不一致。DHCP 若把 DNS 指到路由器上的 Clash 監聽埠,而桌面客戶端又啟用「接管 DNS」或本機 DoH,兩邊對同一網域可能走不同解析鏈,搭配 Fake-IP 時更容易出現「瀏覽器能開、某個 App 不行」這類難以描述的現象。先把誰負責查詢、誰負責轉送寫清楚,比盲目改規則有效得多。

拓撲第一步:誰必須是「唯一」的預設閘道?

在常見住家網路裡,預設閘道通常只有一個:要嘛是電信小烏龍數據機內建的 NAT 路由器,要嘛是你手上的 OpenWrt 路由器。若 OpenWrt 後面還接了第二台「會發 DHCP 的路由器」,就容易形成雙層 NAT。雙層 NAT 本身不一定壞事,但它會讓「透明代理要掛在哪一層、UPnP/通話 P2P 誰來開洞」變複雜;使用者口語常說的雙重 NAT,多半是在抱怨閘道指錯上游又做了一次 NAT,而不是單純兩層位址轉換這個技術名詞。

實務上請先確認:你的電腦取得的預設閘道 IP,是不是你期望的那台 OpenWrt LAN 位址(常見為 192.168.1.1 或自訂區段)。若閘道指向別台分享器,路由器上的 Clash 再怎麼設定,那台電腦的主要流量也不會穩定經過它。同樣地,若你希望「全屋走路由代理」,就不要在少數裝置上把閘道改成手動指向其他機器,除非你很清楚那條路徑上還有誰在做 NAT。

記一條規則 「全屋路由代理」與「單機桌面代理」擇一為主控較穩:要嘛以 OpenWrt 為準、桌面關閉接管;要嘛桌面為準、路由只做單純轉送。兩邊同時當「主控」最容易出現雙重轉發與 DNS 打架。

DHCP 該怎麼發:閘道、DNS 與保留位址

DHCP 決定了大多數裝置開機後「預設往哪走、問誰解析網域名稱」。在 OpenWrt 上,常見做法是:閘道發路由器 LAN IP,DNS 也發同一個位址,讓 dnsmasq 或 Clash 外掛把查詢導進核心。這樣做的好處是內網裝置行為一致;壞處是一旦路由器上的 DNS 轉發或 Clash 的 DNS 段設定有誤,全屋一起中招

若你需要讓特定裝置完全繞過路由代理(例如監視器、印表機、公司 VPN 專用機),請不要用「隨便改 DNS」硬拗,優先在 DHCP 用靜態租約或獨立 DHCP 選項,讓該裝置取得你指定的閘道與 DNS;或在路由器上用策略路由/防火牆標記分流。把例外寫成「可重現的設定」,日後排查才不會變成通靈。

另外,若你同時在電腦上開桌面 Clash,請確認作業系統沒有再被其他軟體改成「固定 DNS」(例如某些安全軟體、公司 MDM)。這類第二套 DNS 覆寫會讓你在路由器上看到「明明 DHCP 正確,客戶端卻沒照做」的假象。

路由器端 Clash/OpenClash:透明代理與 DNS 劫持

OpenClash 或同類外掛通常會處理DNS 劫持(把內網對 53 埠的查詢導向 Clash),並搭配 iptablesnftables透明代理。這兩件事加在一起時,Fake-IP 模式下的行為會與桌面單機不完全相同:有些裝置會快取舊的解析結果,有些 IoT 韌體對短 TTL 或特定回應碼很敏感。

設定上建議你把路由器 Clash 的 DNS 模式fake-ip-filter(或等價欄位)當成與規則同等重要的一環。區網主機名、NAS、印表機、*.local 這類名字若沒列入例外,Fake-IP 很容易讓「內網服務突然連不上」。這部分的觀念與桌面 YAML 相通,細節可回到本站專文Clash DNS:Fake-IP 與 Redir-Host 排查對照,重點是把例外名單與上游 DNS 鏈補齊,而不是先懷疑節點全滅。

若你啟用 IPv6,請一併檢查是否有IPv6 直連繞過代理或相反「IPv6 DNS 仍走舊路徑」的情況。很多家庭網路在開啟 IPv6 後,瓶頸會從「代理規則」轉成「哪條位址族先被選到」,這時要用作業系統或路由器日誌確認實際連線位址族,再決定要在路由器關閉某側、或在 Clash 內補 matchip-version 類策略。

Windows/macOS 桌面端:與路由並存時建議怎麼開?

若路由已對全屋做透明代理,桌面端最穩的配置通常是關閉 TUN/系統代理,讓電腦像一般內網裝置一樣只認路由器閘道。你仍可在電腦上保留 Clash 當設定編輯器除錯面板,但不要讓它再攔一次預設路由。

若你必須在單機使用桌面 Clash(例如需要分應用、或路由規則暫時無法滿足),建議把該電腦的閘道與 DNS 改回「純內網直連路由」狀態:也就是閘道仍指 OpenWrt,但關閉路由上的強制透明代理對這台機器生效(可用 IP 規則或 MAC 旁路),再讓桌面 Clash 以 TUN 或系統代理單點接管。這種「旁路一台」比「路由與桌面雙層都接管」好排查得多。

Windows 11 與 macOS 在 TUN 驅動、系統延伸與防火牆提示上差異很大;若你主要在桌面開 TUN,請搭配TUN 與系統代理對照教學分平台核對權限與虛擬介面,再回來看路由 DHCP 是否仍把 DNS 指到會與 TUN 衝突的位址。

可照做的排查順序(每次只改一項)

步驟一:畫出閘道鏈。 從問題裝置執行路由表檢視(Windows route print、macOS netstat -nr),確認預設閘道是否為預期的 OpenWrt LAN IP。若不是,先修 DHCP 或手動設定,再談 Clash。

步驟二:對照 DNS 來源。 在該裝置上看目前使用的 DNS 伺服器位址(與是否啟用私人 DNS/DoH)。若與 DHCP 不一致,找出是誰覆寫,再決定要統一走路由器,還是統一走本機 Clash。

步驟三:做一次「單主控」實驗。 暫時關閉桌面 Clash 全部接管功能,只留路由透明代理;若症狀消失,代表先前為雙重轉發或 DNS 雙軌。反向實驗亦可:暫停路由上的 DNS 劫持/透明代理規則,只開桌面 Clash,確認問題是否跟路由層有關。

步驟四:檢查 Fake-IP 與內網例外。 若只有內網名稱或特定網域異常,依DNS 模式專文fake-ip-filter 或暫改 redir-host 做 A/B 測試。

步驟五:看路由器與 Clash 日誌。 以同一時間戳對照「域名 → 命中規則 → 實際出口」,避免同時改訂閱、規則與 DNS 三組變因。需要補強規則觀念時,可延伸閱讀YAML 規則與策略組教學

合規提醒 請在所在地法規與服務條款允許的範圍內使用代理與加密工具;本文僅討論家庭區網設定與故障排除,不提供規避監管或侵權用途的指引。

寫在最後:先把「誰主控」講清楚,再微調規則

OpenWrt 上跑 Clash 與桌面客戶端並存的本質,是閘道、DNS、透明代理層級的責任分配。把其中一層指定為主控、其餘只做輔助或旁路,通常就能消滅八成「偶發斷線、部分網站打不開」的怪問題。其餘兩成,多半落在 Fake-IP 與內網解析、IPv6 路徑、以及訂閱規則與實際命中不一致。

相較於到處複製別人的防火牆腳本,願意用單因次實驗驗證 DHCP、DNS 與代理層的使用者,往往能更快穩定全家網路。若你仍需要在本機精細分流,也可搭配介面清楚、文件一致的 Clash 客戶端,從本站整理好的入口取得安裝包與版本說明,把時間花在規則與拓撲,而不是找安裝檔。

歡迎前往我們的下載頁面取得 Windows、macOS 等客戶端;先把閘道與 DNS 路徑站穩,再決定要全屋路由代理或單機深度接管,整體體驗會踏實許多。

立即免費下載 Clash,開啟流暢、可預期的代理體驗

想依場景補齊知識版圖,也可瀏覽技術專欄內其他教學,按需選讀即可。