連線疑難排解 · Clash 技術部落格

OpenClash 與 Tailscale DNS 衝突怎麼修?

OpenClash 本機代理與 Tailscale DNS 衝突,能用 IP 連線卻無法開啟完整 ts.net 名稱?比較兩種解析結果,確認 v0.48.002 內建模組,重新啟動驗證,並保留還原原設定的方法。

  • OpenClash
  • Tailscale
  • MagicDNS
  • 覆寫模組
  • v0.48.002
本文目錄

同一台裝置透過 IP 能存取,換成完整網域名稱卻失敗,就需要繼續核對名稱解析。路由器與區域網路裝置可能將查詢交給不同的解析器,必須分別測試;保留原設定與管理入口後,才能比較哪項調整真正恢復了所需服務。

Tailscale 已連線,路由器為什麼仍無法解析網域?

確認 OpenClash 與 Tailscale 都在同一台 OpenWrt 路由器執行,再記錄裝置 IP 與完整 ts.net 名稱的存取結果。若接受 Tailscale DNS 後本機網域請求異常,還要同時記錄路由器自己的 DNS 與區域網路裝置的結果。

OpenClash 於 2026 年 10 月 12 日發布 v0.48.002,說明新增 Tailscale 預設模組,用於處理本機代理時啟用 accept-dns 可能出現的異常。模組實際只給 ts.net 網域指定 Tailscale DNS,不是所有 DNS、路由或防火牆問題的通用修復。

路由器上的 tailscaled 必須正在執行,且 Tailscale 已連線。僅在電腦執行桌面 Clash、或區域網路另一台裝置執行 Tailscale 時,不要照搬路由器的模組。尚未登入、MagicDNS 未啟用、裝置離線或存取策略拒絕,應先處理對應問題。

比較裝置 IP、完整網域與兩個 DNS 的結果

先透過區域網路位址進入 LuCI,保留 OpenWrt 與 OpenClash 設定備份、目前訂閱和自訂模組,記下外掛程式與 Tailscale 版本、本機代理開關、原 accept-dns 值及模組開關。只有 Tailscale 遠端管理入口時,暫緩重新啟動和 DNS 修改,先準備本機管理辦法。

在路由器上讀取 Tailscale 狀態;從自己的管理控制台取得一台線上裝置的完整 MagicDNS 名稱和 IP。用相同服務對比 IP 與網域存取。IP 也失敗時,應檢查裝置、服務、路由與存取權限,不能僅靠 DNS 模組判斷或修復。

下面兩次 nslookup 要換成你自己的完整名稱。第二個伺服器使用目前路由器的本機 DNS 位址;127.0.0.1 只是常見示例,須先確認該位址確實提供 DNS。測試都在路由器上執行,不能把 Tailscale DNS 位址當成一般公共 DNS 分給所有裝置。

路由器的 DNS 劫持可能重新導向發往指定伺服器的請求,寫了 100.100.100.100 不等於已繞過外掛程式。必要時在本機管理下記錄原狀態,短暫停用 OpenClash、保持 Tailscale 執行再測,然後恢復;這會暫時影響區域網路代理,應安排可中斷的時段。

Fake-IP 模式下,本機 DNS 回傳 198.18.x 並不自動表示解析有問題。還要用完整名稱存取同一服務,結合核心記錄看實際目標;逾時、SERVFAIL、NXDOMAIN,或 IP 成功而名稱失敗,才是繼續檢查解析路徑的線索。

在路由器上對照解析;先替換示例網域和本機 DNS 位址
tailscale version
tailscale status
nslookup device.your-tailnet.ts.net 100.100.100.100
nslookup device.your-tailnet.ts.net 127.0.0.1

依比較結果選擇下一步

觀察結果下一步
裝置 IP 可達,已確認 Tailscale DNS 能解析,本機名稱存取失敗檢查請求是否進入 OpenClash DNS,以及實際運作的設定是否缺少或覆蓋 ts.net 的解析策略,再試內建模組。
排除 DNS 劫持後,Tailscale DNS 仍無法解析完整名稱先核對 tailscaled、登入狀態、MagicDNS 和名稱拼寫;模組不能代替 Tailscale DNS 服務。
網域已有正確結果,但服務連線失敗轉查目標服務、Tailscale 路由與存取策略;不要繼續更換 DNS 來試運氣。
只有路由器一般公用網路網域異常,區域網路裝置正常保留兩端差異,檢查本機 DNS 與 accept-dns;不要把症狀直接歸為 ts.net 模組缺失。

在運作狀態頁啟用內建 Tailscale 模組

舊版沒有這個內建入口時,不要貼上陌生指令碼代替升級;這次調整也不要求升級整台路由器韌體或重置全部設定。

將模組套用至目前使用的設定

  1. 核對實際外掛程式版本

    按文末官方 v0.48.002 Release 和原有升級方式更新外掛程式,保留升級前備份。完成後在 LuCI 核對實際版本,並確認原訂閱仍能啟動;安裝失敗按發生錯誤與備份恢復。

  2. 從運作狀態頁開啟覆寫模組

    進入服務 → OpenClash 的運作狀態頁,按一下頂部的覆寫模組按鈕,在彈出視窗左側選擇內建 Tailscale。它與選單中的覆寫設定頁面是不同入口。

  3. 確認範圍後開啟模組

    新安裝的內建 Tailscale 模組預設關閉、範圍為全部設定。升級保留舊設定時,若顯示未設定且沒有開關,先用模組的齒輪按鈕設定為全部或目前設定的完整路徑,再啟用。記錄原值,不必編輯內容、建立副本或重新整理遠端訂閱。

  4. 重新啟動並檢查實際運作的設定

    關閉編輯器後,在運作狀態頁重新啟動 OpenClash。核對實際執行的 dns.nameserver-policy 中,+.ts.net 是否指向 100.100.100.100#DIRECT;僅儲存或重載防火牆不會重新應用模組。

官方模組的內容如下,僅用於與現有模組核對。[YAML] 和 nameserver-policy+ 是 OpenClash 覆寫格式;執行後的 Mihomo 設定使用 nameserver-policy。不要直接把整段複製到訂閱 YAML,也不要新增重複模組。

v0.48.002 內建 Tailscale 模組的 DNS 內容
[YAML]
dns:
  nameserver-policy+:
    '+.ts.net':
      - 100.100.100.100#DIRECT

100.100.100.100 是本機 Tailscale 提供的 DNS 服務位址,#DIRECT 讓相關 DNS 請求使用直連。這個模組不替你啟動 tailscaled,也不修改 Tailscale 路由、存取策略或 accept-dns。其他模組已有相同網域策略時,以最終實際運作的設定為準,不能只看編輯器中的文字。

accept-dns 要不要關閉?只做有記錄的對照

不要為了啟用模組一律關閉 Tailscale DNS。只有原 accept-dns 為 true,且普通網域故障隨該設定出現時,才在區域網路管理連線下做一次關閉對照。先記錄原值;關閉會讓該裝置停止接受 tailnet DNS 設定,可能影響系統 MagicDNS 簡短名稱或自訂網域解析。

支援的 Tailscale CLI 可用 tailscale get accept-dns 查看目前值;舊版先查看說明,不支援時從已有設定記錄確認,不能把未知值當作 true。確認原值後,下面命令只用於這一次對照,不代表所有裝置應長期採用 false。

僅在已確認原值和本機管理入口後臨時關閉
tailscale set --accept-dns=false

tailscale set 只更新明確指定的參數;不要附加 reset、重新登入、接受路由或出口節點參數。關閉後重複相同公用網路網域、完整 ts.net 名稱和服務存取測試,儲存差異;沒有改善就恢復原值,不繼續疊加 DNS 改動。

原值為 true 時,還原命令為 tailscale set --accept-dns=true;原值為 false 時保持 false。系統解析器接受 Tailscale DNS 與 OpenClash 將 ts.net 查詢送往本機 DNS,是兩個不同設定。模組不會自動把系統簡短名稱、其他私有網域或所有區域網路裝置變成可用。

完整網域恢復後,還要驗證路由器和區域網路

使用同一個實際完整 ts.net 名稱,重複之前的兩個 DNS 測試,再存取同一台裝置的同一服務。Tailscale DNS 的實際位址應與裝置記錄一致;本機 Fake-IP 答復須結合實際請求與記錄核對。能完成服務請求才說明該存取路徑恢復。

模組只匹配 ts.net 後綴。簡短名稱失敗、其他私有網域失敗或非 Tailscale 裝置失敗,仍需檢查各自的 DNS、搜尋域和網路路徑。區域網路裝置的請求只有實際交給已設定的解析器時才能使用這項策略,不應據此宣稱整個網路的所有應用程式自動恢復。

本次修改驗收

  • tailscaled 保持連線,測試裝置與服務仍可按原 IP 存取
  • 實際運作的設定包含預期的 ts.net 解析策略,沒有被其他模組覆蓋
  • 路由器的完整 MagicDNS 名稱解析與實際服務請求成功
  • 一般的公開網域仍正常;從實際使用的區域網路裝置另測網域解析和服務存取
  • OpenClash 正常重新啟動後策略仍在,同一組測試仍成功
  • 原模組狀態、accept-dns 值和獨立備份都有記錄

仍無法連線或影響其他裝置,如何還原?

回到覆寫模組視窗,恢復 Tailscale 模組修改前的開關和適用範圍,再重新啟動 OpenClash,確認實際運作的設定中的策略已恢復。如果還臨時改過 accept-dns,按記錄恢復原值,再測試一般網路連線和原來的 Tailscale 存取;無需刪除整個設定目錄。

升級本身失敗時,保留安裝錯誤和目前資料,按升級前備份恢復原外掛程式設定、訂閱與自訂資源。恢復設定與降級程式不是同一操作,不假定舊外掛程式能讀取新版全部設定;沒有相容依據時先停用本次模組,恢復此前可用方案。

仍失敗時產生 OpenClash 偵錯記錄,回報外掛程式、核心與 Tailscale 版本,本機代理和 DNS 設定、最終網域策略、路由器與區域網路差異,以及 IP、完整名稱、兩個解析器的對照結果。分享前刪除訂閱令牌、密碼、裝置身分和私有網域,不把完整原始記錄公開。

參考資料