Clash Meta 下載站mihomo 用戶端下載

mihomo DNS 設定詳解:fake-ip 與 redir-host

設定與訂閱 2026 年 7 月 11 日 4 分鐘閱讀
本文目錄

設定檔裡最容易被跳過、出問題時卻最常是元凶的一段,就是 dns。節點沒問題、規則也對,網頁卻打不開或連到奇怪的地方,十次有七八次是解析階段出了狀況。

mihomo 內建了完整的 DNS 模組,可以自己處理所有網域解析,不必依賴系統或 ISP 的 DNS。它的核心設計是 enhanced-mode,分成 fake-ip 與 redir-host 兩種模式。這篇說清兩者的原理差別、fake-ip 的副作用怎麼處理,以及各個 nameserver 欄位分別在什麼時候被用到。

代理為什麼要接管 DNS

如果解析交給系統做,會出現兩個問題。第一是解析結果不可信:回傳被竄改或污染的位址時,你連上的根本不是目標網站,而且流量已經先出去了。第二是解析行為本身會外洩你要造訪哪些網域——就算後續連線走了加密代理,解析請求若以明文送給本地 DNS 伺服器,等於先報備了一次。

由核心接管之後,解析要走哪個上游、要不要透過代理去問,全部由設定檔決定,行為變得可預測,這也是為什麼開了 TUN 模式之後 DNS 設定會變得更關鍵——那時整台機器的解析請求都會進到核心手上,原理見 TUN 模式詳解

enhanced-mode 的兩種模式怎麼選

fake-ip:核心收到查詢後,不真的去解析,而是立刻回一個保留網段(常見為 198.18.0.0/16)內的虛擬位址給應用程式。應用程式拿著這個假位址發起連線,核心攔下來時才知道對應的是哪個網域,這時再依規則決定直連或走代理,真正的解析交由出口那端完成。

redir-host:核心照常做真實解析,取得真實 IP 後再依規則處理連線。行為比較傳統、直觀。

兩者的實際差別在於:fake-ip 因為省掉了「連線前先解析」這一步,回應快,也天然避免了本地解析被污染的問題,因為分流判斷是靠網域而不是靠 IP;redir-host 則是所有需要真實 IP 的場合都不會出錯,但解析品質直接影響連線品質。多數情況建議用 fake-ip,遇到特定應用程式異常再個別處理。

fake-ip 的副作用與 fake-ip-filter

fake-ip 的假位址只有核心看得懂,所以少數需要真實 IP 的場景會出狀況:區域網路裝置探索、路由器管理介面、部分要求 IP 一致性的連線檢查服務,還有某些遊戲的連線邏輯。症狀通常是「其他都正常,就這個功能怪怪的」。

解法不是關掉 fake-ip,而是把這些網域列進 fake-ip-filter——名單內的網域會跳過 fake-ip,改用真實解析:

  fake-ip-filter:
    - "*.lan"
    - "*.local"
    - "+.home.arpa"
    - "time.*.com"

寫法上 * 比對單層,+. 表示包含該網域及其所有子網域。遇到某個應用程式行為異常時,先把它用到的網域加進來試一次,比大改設定有效率得多。

nameserver、fallback 與 default-nameserver 的分工

  • default-nameserver:專門用來解析其他 DNS 伺服器本身的網域。這裡只能填 IP 位址,否則會陷入先有雞還是先有蛋的死結。
  • nameserver:主要的上游解析伺服器,一般網域都由它負責。
  • fallback:備援上游,通常填境外或加密的解析伺服器,用於處理主要上游結果不可信的情況。

上游位址可以寫成一般 IP、加密形式(如 tls:// 開頭的 DoT),或帶協議前綴的其他形式。多寫幾個沒壞處,但也別堆到十幾個,每次查詢都要等回應,反而拖慢速度。

一段通用的 dns 設定範例

dns:
  enable: true
  listen: 0.0.0.0:1053
  ipv6: false
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - "*.local"
  default-nameserver:
    - 168.95.1.1
    - 1.1.1.1
  nameserver:
    - 168.95.1.1
    - 1.1.1.1
    - tls://8.8.8.8
  fallback:
    - tls://1.1.1.1

這份設定偏保守,適合直接套用再依需求微調:關閉 IPv6 解析可以避開部分雙堆疊環境下的怪問題;listen 開一個本機 DNS 監聽埠,方便 TUN 模式或其他程式導向它。改完照例用 mihomo -t 檢查一次再啟動。

提醒:若你的設定檔來自訂閱,客戶端可能有「覆寫 DNS」之類的選項,開啟後會以客戶端自己的 DNS 設定取代訂閱內的那一段。發現改了沒反應時,先確認是哪一份設定實際生效。

常見症狀對照表

症狀可能原因處理方式
某個應用程式異常,其他一切正常該應用程式需要真實 IP,被 fake-ip 影響把相關網域加進 fake-ip-filter
網頁開啟前有明顯停頓上游 DNS 回應慢,或清單裡有不可用的伺服器精簡 nameserver,換反應較快的上游
連到的網站內容不對解析結果被竄改改用 fake-ip,並在上游加入加密解析
區域網路裝置、印表機找不到內網網域被送去外部解析*.lan*.local 等加入排除清單
開 TUN 後完全沒網路DNS 未正確接管或監聽衝突確認 dns.enable 為 true 與 listen 連接埠未被占用

DNS 調整完之後,若還是有網站連不上,就要往分流那一層看了——可能是規則把它送到錯的出口,判讀方式見分流規則入門;如果是整體都上不了網,照分步排查指南由外而內逐層檢查會更快找到原因。