2026-09-09 · 進階原理 · 約 12 分鐘

FakeDNS 原理與設定指南:虛擬 IP、TUN 分流與注意事項

了解 FakeDNS 如何將 DNS 查詢轉為虛擬 IP,搭配 TUN 與網域分流運作,並掌握適用情境、設定重點與常見影響。

本文摘要

FakeDNS 透過本機配置的虛擬位址保留網域資訊,不是公共 DNS,也不是新的代理協定。本文適合已能正常連線、準備調整 TUN 與網域分流的使用者:先了解查詢與連線如何串接,再確認設定限制,最後逐項排查快取、DNS 接管與區域網路存取。若沒有明確需求,維持目前可用的真實位址解析方式即可。

FakeDNS 原理:虛擬位址是映射索引

一般 DNS 查詢會將網域解析為目標服務的真實位址。FakeDNS 則從本機位址池挑選一個位址,記錄「網域與虛擬 IP」的對應關係,再將虛擬位址回傳給應用程式。例如,應用程式查詢 example.org 的 A 記錄時,可能會取得 198.18.0.1。這只是示範位址,實際分配順序取決於實作方式與執行狀態。

查詢網域 分配虛擬位址 接管連線 還原網域 依規則選擇出站

接著,應用程式會連線至這個虛擬 IP。接管流量的元件讀取目標位址後,查出對應網域,再交由路由與出站規則處理。因此,FakeDNS 的重點不只是「回覆特殊 IP」,而是 DNS 查詢與後續連線都必須經過能共用或使用這份映射資料的處理鏈。

198.18.0.0/15 是保留供基準測試使用的位址範圍,涵蓋 198.18.0.0 至 198.19.255.255,不是一般的公網服務位址。FakeDNS 常使用這個範圍,但不同實作也可能採用其他位址池。若虛擬位址未經接管便直接送往實體網路,通常無法連到原本的網站。

TUN 與網域分流:接管、還原、比對缺一不可

TUN 會在網路層接收 IP 封包。剛接管連線時,通常只取得目標 IP、連接埠與傳輸協定等資訊。若應用程式已完成網域解析,封包中可能不再直接帶有網域名稱。FakeDNS 會預先保存「這個位址原本對應哪個網域」,為網域規則提供線索。

  1. 接管 DNS:應用程式的查詢必須進入預期的 DNS 處理鏈。傳統 DNS 常使用 UDP 53,也可能使用 TCP 53;只處理其中一種,不代表所有查詢都已接管。
  2. 接管連線:前往虛擬位址池的 TCP 或 UDP 流量,必須進入相應的 TUN、路由與核心處理鏈,不能被排除規則提前放行。
  3. 還原網域:接收連線的元件必須能使用映射資料。Xray 的相關設定涉及 FakeDNS 與入站嗅探;只在 DNS 清單中新增一個名稱,並不足以完成整個流程。
  4. 套用規則:還原網域後,再依網域規則、IP 規則與預設規則決定出站路徑。VMess、VLESS 等協定負責後續代理傳輸,不負責建立這份映射。

瀏覽器透過系統 HTTP 代理存取 HTTPS 網站時,可以在 CONNECT 請求中帶上目標主機名稱;SOCKS5 也支援網域位址類型。這類連線可能已將網域資訊交給代理,不一定需要使用 FakeDNS。相對地,若應用程式先在本機解析網域、只傳送 IP,就需要另外確認如何取得網域資訊。

判斷方式:先確認網域是否已傳到路由層

若目前的系統代理連線已能依網域命中規則,先維持現狀。只有在 TUN 接管後網域資訊不足,而且 DNS 與連線都能進入同一套處理鏈時,再評估是否使用 FakeDNS。

設定檢查:位址池與還原入口必須配套

v2rayN 是桌面用戶端,v2rayNG 使用 Xray 核心,v2flyNG 使用 V2Fly 核心。用戶端介面、所選核心與 TUN 接入元件分屬不同層級,不能只看用戶端名稱就判斷設定欄位是否適用。以下鍵值用來說明 Xray 的設定關係,不代表三款用戶端都提供相同名稱的開關,也不能直接當成完整設定匯入。

虛擬位址分配端

設定物件
fakedns
位址池範例
198.18.0.0/15
容量範例
poolSize: 65535
DNS 服務項目
fakedns

容量只是範例參數,不代表節點數或可支援的同時連線數;定義位址池後,也必須讓相關查詢實際使用它。

連線還原端

入站設定
sniffing
啟用欄位
enabled: true
還原類型
destOverride: ["fakedns"]
接管範圍
套用至虛擬位址池的連線

應檢查實際承接流量的入站,而不是替沒有流量經過的入站新增欄位。

以下是 Xray 原生 JSON 的分配端片段,只展示位址池與內建 DNS 的關聯。內容缺少入站、出站、路由與接管設定,不能取代用戶端產生的完整檔案。若用戶端使用其他元件處理 TUN 與 DNS,請依該元件的設定格式操作,不要混用欄位。

{
  "fakedns": [
    {
      "ipPool": "198.18.0.0/15",
      "poolSize": 65535
    }
  ],
  "dns": {
    "servers": [
      "fakedns"
    ]
  }
}

適用情境與副作用:虛擬 IP 不適用所有應用程式

FakeDNS 可減少部分連線在本機取得真實位址的需求,也能協助網域規則辨識已轉為 IP 連線的請求。但它不會自動縮短遠端解析時間,也無法修復節點無法使用、TLS 參數錯誤或路由規則順序不當等問題。是否值得使用,應看網域辨識與應用程式相容性,而非只看 DNS 回覆是否變快。

情境主要影響處理建議
在 TUN 下依網域分流映射可為 IP 連線補回網域資訊確認 DNS、虛擬網段與還原入口的整個流程正常
區域網路服務與內部網域名稱探索或內網解析可能遭到錯誤接管為內部網域與網段保留真實解析及直連路徑
企業網路使用相同網段虛擬位址池可能與現有路由衝突檢查路由表,視實作支援情況更換位址池或關閉功能
應用程式會檢查解析結果程式可能拒絕保留位址,或將虛擬位址存入快取讓該應用程式改用真實位址解析,再測試登入與連線
應用程式使用加密 DNS查詢可能繞過一般 53 連接埠的接管檢查應用程式的 DNS 設定,勿將加密連線誤當成一般 DNS 強制重新導向

直接連線至 IP 位址的程式不會先查詢網域,FakeDNS 無法憑空補出網域資訊。區域網路的多點傳送名稱探索也不同於一般單點傳送 DNS;只調整 53 連接埠規則,不一定能解決列印、檔案共用或內部服務探索問題。

取捨建議:內部服務優先使用真實解析

若工作網路依賴內部 DNS,請先確認內部網域、DNS 伺服器及相關網段的解析與連線路徑。若登入或服務探索異常,先停用 FakeDNS 還原設定,不要藉由擴大代理範圍掩蓋問題。

驗證流程:分別檢查 DNS、映射與出站

驗證時請使用同一個測試網域,固定節點與路由規則,每次只變更一項設定。看到虛擬位址,只能證明某次查詢取得了虛擬回覆;網站能開啟,也不代表所有應用程式都經過相同的處理鏈。請一併檢查解析結果、接管記錄與規則命中狀況。

  1. 建立基準:關閉 FakeDNS,記錄測試網域是否可連線、目前的 DNS 結果與出站規則。保留可還原的設定,不要修改訂閱中的伺服器位址。
  2. 驗證查詢:啟用後查詢同一個網域,確認 A 記錄是否落在實際設定的虛擬位址池。若結果仍是真實 IP,先檢查快取、應用程式內建 DNS 與 DNS 路由,不要急著修改位址池。
  3. 驗證還原:建立新連線,檢查記錄是否能對應到原始網域及預期的出站路徑。若只看到虛擬 IP 被直接連線,應優先檢查還原入口與網段路由。
  4. 驗證相容性:分別測試網頁、內部服務與一款非瀏覽器應用程式。UDP 應用程式也要另外測試;網頁的 TCP 連線成功,不能取代 UDP 驗證。

在 Windows 上,可先查看系統目前取得的解析結果,切換方案後再清除系統 DNS 快取。以下兩個指令分別用於查詢與清除快取;它們不是效能測試,也沒有固定的預期位址。

nslookup example.org
ipconfig /flushdns

清除系統快取,不代表瀏覽器或應用程式的內部快取也已清除。關閉 FakeDNS 或重新啟動映射元件後,應用程式可能仍保留舊的虛擬位址;若映射已失效,舊連線就會失敗。還原設定時,應先停止相關應用程式、清除系統快取,再重新開啟應用程式測試。

常見問題:啟用後異常的排查方式

解析結果以 198.18 開頭,代表 DNS 出錯了嗎?

先確認實際使用的位址池。啟用 FakeDNS 且設定使用 198.18.0.0/15 時,這可能是正常回覆。接著建立連線,查看網域還原與出站記錄;若已關閉功能卻仍回傳這類位址,請清除系統與應用程式快取,並檢查是否仍有其他 DNS 接管元件在執行。

為什麼啟用後瀏覽器能用,其他應用程式卻無法連線?

分別確認應用程式是否使用獨立 DNS、是否未納入 TUN 接管,以及是否拒絕保留位址。先讓異常的應用程式改用真實位址解析,再重新啟動測試。不要只因瀏覽器連線成功,就擴大所有應用程式的接管範圍。

啟用 FakeDNS 後,就不需要設定遠端 DNS 了嗎?

不是。虛擬位址分配端只負責本機映射;直連出站或遠端代理建立實際連線時,仍可能需要解析網域。請檢查負責最終解析的元件與 DNS 出站,避免代理伺服器網域的解析依賴尚未建立的代理連線。

關閉後還是無法開啟網頁,需要重新安裝用戶端嗎?

先還原原本的 DNS 與接管設定,執行 ipconfig /flushdns,再關閉並重新開啟瀏覽器。接著確認系統代理是否仍指向已停止的本機服務。Android 端請先停止並重新啟動用戶端的 VPN 連線及相關應用程式,再次測試;通常應先排除舊快取與殘留的接管狀態。

最終判斷標準是連線流程清楚可查、網域規則能正常命中,且日常使用的應用程式穩定。FakeDNS 只是 DNS 與流量接管之間的一種搭配方式;訂閱匯入、節點選擇、系統代理與 TUN 仍須分別確認。

下載 v2rayN