先了解 Fake-IP:DNS 回應與網域分流如何配合
Fake-IP 是 mihomo 提供的 DNS 增強模式。應用程式查詢網域時,核心會回傳指定保留範圍內的虛擬 IP,並在本機記錄虛擬 IP 與原始網域的對應。應用程式接著連線至這個虛擬 IP,核心便能找回原始網域,依照網域規則選擇代理群組、直連或其他策略。虛擬 IP 不是網站伺服器的真實位址,也不是節點位址。
這種方式有助於保留網域資訊,避免核心只看到目的 IP 而無法套用網域分流規則。不過,設定 enhanced-mode: fake-ip 不會自動讓 Windows 上的所有應用程式都使用核心 DNS。應用程式的 DNS 查詢是否進入 mihomo,還會受到系統代理、TUN、DNS 接管、瀏覽器安全 DNS 和應用程式自身網路設定影響。
| 項目 | 作用 | 常見檢查方向 |
|---|---|---|
enhanced-mode: fake-ip |
讓核心以虛擬 IP 回應網域查詢,並保留網域對應資訊 | 確認正在使用的設定檔確實包含此欄位 |
nameserver |
指定一般網域查詢所使用的上游 DNS | 檢查伺服器可連線,以及該寫法受目前核心支援 |
| TUN 與 DNS 接管 | 將符合條件的應用程式流量及 DNS 查詢送入核心處理 | 確認 TUN 已啟用、Windows 權限允許,且沒有其他 VPN 衝突 |
fake-ip-filter |
讓指定網域不使用 Fake-IP,依解析設定取得實際 DNS 回應 | 只加入確實需要真實 IP 的網域,避免範圍過大 |
設定前的 Windows 檢查與備份
開始修改前,先記下 Clash Verge Rev 版本、核心名稱與版本,以及目前使用的設定檔名稱。若系統已有其他 VPN、代理程式或 DNS 篩選工具,先暫停不必要的工具,以免多個程式同時調整路由或 DNS。設定完成並驗證後,再逐一恢復其他工具,較容易辨認衝突來源。
- 備份設定:使用用戶端提供的複製或匯出功能保存目前設定。若採用檔案編輯,先複製原檔,不要把唯一一份設定直接覆寫。
- 確認設定檔:確定選取的設定檔是目前啟用的設定,而不是清單中另一份測試設定。更新訂閱後,也要重新確認啟用項目。
- 檢查 YAML 結構:同一層級不要出現兩個
dns:區塊。若設定已經有 DNS 欄位,請合併需要的子欄位,不要另加一份互相衝突的區塊。 - 選擇測試入口:只測試遵循 Windows 系統代理的瀏覽器,與測試未設定代理的應用程式,結果可能不同。若要測試較廣泛的系統 DNS 與流量,通常需要配置 TUN。
Clash Verge Rev 不同版本的頁面名稱或位置可能略有差異。請從設定檔清單找到目前使用的設定,使用該版本實際提供的編輯或覆寫入口;不要把 YAML 貼進節點地址、訂閱網址或一般代理伺服器欄位。若用戶端會根據介面設定產生最終設定,應以核心實際載入的結果為準。
動手設定:在目前設定檔加入 DNS 區塊
以下範例適用於支援相應欄位的 mihomo 核心,示範啟用 Fake-IP、指定本機 DNS 監聽位址,以及配置上游 DNS。這不是完整訂閱,不能取代原有的節點、代理群組與規則。請把內容合併到現有 YAML 的頂層 dns: 區塊;若已有 dns:,只新增缺少的子欄位,並保留原先必要的設定。
dns:
enable: true
listen: 127.0.0.1:1053
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
default-nameserver:
- 223.5.5.5
nameserver:
- https://dns.alidns.com/dns-query
- 在 Clash Verge Rev 中選取目前使用的設定檔,先備份,再開啟該版本提供的設定檔編輯或覆寫功能。
- 找到頂層
dns:。若原設定沒有該區塊,將範例加入頂層;若已有,合併欄位並刪除重複鍵值。YAML 縮排使用空格,不要混用 Tab。 - 按介面提供的儲存或套用操作,重新載入設定檔。若核心拒絕載入,先查看執行記錄中的 YAML 行號或未知欄位,再修正後重新套用。
- 確認核心啟動正常,並檢查 DNS 狀態或核心日誌。若使用 TUN,依用戶端提供的方式啟用 TUN;Windows 可能會要求提升權限。只在信任的環境中授予必要權限。
- 開啟一個新的瀏覽器視窗或重新啟動測試應用程式,再進行網域解析測試。不要只用已開啟很久的分頁判斷,因為應用程式可能仍使用先前的 DNS 快取與連線。
listen: 127.0.0.1:1053 是核心本機 DNS 監聽位置,不代表所有 Windows DNS 查詢都會自動送到此處。default-nameserver 用於解析上游 DNS 伺服器主機名稱等必要情況;nameserver 則是一般網域查詢使用的上游。若服務提供者要求不同的上游地址或協定,請依可信任的服務文件調整,並確認核心支援相應格式。範例中的 IPv4 上游也不代表所有網路環境都能連通。
系統代理與 TUN:決定 DNS 查詢是否進入核心
Windows 系統代理主要影響有讀取系統代理設定的應用程式,並不會接管所有應用程式的 DNS 或網路流量。瀏覽器可能透過系統代理將網域請求交給核心,但命令列工具、遊戲或使用自訂網路堆疊的程式,未必採用相同路徑。Fake-IP 設定已載入,不等於這些程式的 DNS 查詢已被接管。
若需要讓較多應用程式的流量進入核心,可考慮使用 TUN。TUN 會透過虛擬網路介面與路由處理流量;在 mihomo 設定中,DNS 接管通常會以 dns-hijack 指定符合條件的 DNS 流量,例如 UDP 或 TCP 的目的連接埠 53。各版本與用戶端可能提供圖形化開關,也可能由設定檔控制;請避免同時在介面與 YAML 中重複設定同一欄位。
| 使用方式 | 可能涵蓋範圍 | 需留意事項 |
|---|---|---|
| Windows 系統代理 | 遵循系統代理設定的應用程式連線 | 不保證攔截其他應用程式的獨立 DNS 查詢 |
| TUN 與 DNS 接管 | 依路由與接管條件處理更多 IP 流量及連接埠 53 的 DNS 查詢 | 需要相應權限;可能與其他 VPN、虛擬網卡或防火牆規則衝突 |
| 應用程式自訂加密 DNS | 可能直接使用 HTTPS 或其他加密協定查詢 DNS | 單純接管連接埠 53 通常不會攔截所有加密 DNS 流量 |
排查期間可暫時關閉瀏覽器自行設定的安全 DNS,讓測試使用較一致的解析路徑;確認核心 DNS 正常後,再決定是否恢復。這是用於定位差異的測試,不代表所有情況都必須關閉加密 DNS。若組織網路、家用路由器或安全軟體另有 DNS 管理政策,應先確認政策允許的設定。
驗證 Fake-IP 是否生效
驗證時要分清楚「核心設定已載入」、「查詢進入核心」和「連線按預期分流」三件事。只看到設定檔中的 enhanced-mode: fake-ip,不能證明 Windows 上每個應用程式都使用了 Fake-IP;而查到保留位址,也不代表目標網站一定可以連線。
- 確認核心載入:在用戶端執行狀態或日誌中確認目前核心已啟動,沒有 DNS 欄位解析錯誤、連接埠占用或設定檔載入失敗。
- 確認 DNS 查詢:在已啟用並正確接管 DNS 的環境中,使用 Windows 命令提示字元執行
nslookup example.com,將example.com換成自己有權測試的網域。Fake-IP 配置下可能看到198.18.0.0/16範圍內的回應;實際結果會受到 TUN、DNS 快取及應用程式設定影響。 - 確認連線規則:在 Clash Verge Rev 的連線或日誌頁面查看該測試網域是否出現,並核對命中的規則與出站策略。若只看到 IP,表示核心當下可用的網域資訊可能不同,應檢查 DNS 接管與網域映射狀態。
- 確認實際用途:用新連線測試瀏覽器或目標應用程式。若 DNS 回應正常但網站仍無法開啟,另外檢查代理群組是否選到可用節點、規則是否將網域指向預期策略,以及上游服務是否可達。
Windows 的 DNS 快取可能使測試結果與剛載入的設定不一致。必要時可在命令提示字元執行 ipconfig /flushdns 清除系統快取,再重新查詢;同時關閉並重開測試應用程式,以免它保留自己的 DNS 快取或既有連線。若使用瀏覽器安全 DNS,還要在測試紀錄中註明其狀態,避免將不同解析路徑的結果混在一起。
設定未套用、解析異常與還原方式
| 現象 | 優先檢查 | 處理方向 |
|---|---|---|
| 儲存後沒有變化 | 目前啟用的設定檔、覆寫層級、核心是否重新載入 | 確認修改的是生效設定,查看核心日誌並重新套用 |
| 設定檔無法載入 | 重複的 dns:、縮排、欄位拼字及核心版本 |
依錯誤行號修正 YAML;不支援的欄位不要照搬其他核心範例 |
| 查詢逾時或沒有回應 | 上游 DNS 可達性、防火牆、核心監聽位址及 DNS 接管 | 先以簡單且可達的上游測試,再逐項恢復其他選項 |
| 部分內網服務無法使用 | 內網網域是否需要真實 IP、內部 DNS 是否可達 | 依核心支援方式設定 fake-ip-filter 或內網解析,不要將整個內網範圍任意排除 |
| 只有特定瀏覽器異常 | 瀏覽器安全 DNS、代理設定、瀏覽器快取 | 暫時統一解析路徑測試,清除相關快取後再恢復原設定 |
若路由器管理頁、印表機、NAS 或公司內部網域依賴內部 DNS,可能需要讓這些網域取得真實解析結果。mihomo 的 fake-ip-filter 可用來指定不使用 Fake-IP 的網域,但應只加入確實需要例外的項目,並依目前核心支援的語法配置。不要直接把整個通用網域後綴加入例外,否則可能意外改變大量網域的解析與分流行為。
需要還原時,先在用戶端停用 TUN 或相關 DNS 接管功能,再將設定檔恢復為備份版本,或移除本次新增且確認不再需要的 DNS 欄位,然後重新套用。若 Windows 系統代理由用戶端啟用,確認停用後系統代理已回復原狀;再執行 ipconfig /flushdns,並重新啟動受影響的應用程式。不要只刪除 DNS 區塊,卻留下 TUN 路由或系統代理仍在作用。