FakeDNS 是什麼?V2Ray 虛擬 DNS 原理與啟用時機

了解 FakeDNS 如何分配虛擬 IP、還原網域,以及如何搭配 TUN 模式;也看看哪些情況不適合啟用。

本文重點

FakeDNS 以虛擬 IP 保留網域線索,適合需要依網域分流的透明代理情境。本文說明 DNS 回應、連線攔截與網域還原的原理,並提供核心設定範例、TUN 檢查步驟及復原方式。關鍵不在於找到通用開關,而是確認 DNS 查詢與後續連線都經過同一條可還原的處理路徑。

FakeDNS 是什麼:以虛擬 IP 對應網域

一般 DNS 查詢會將網域轉換成可連線的實際 IP 位址。FakeDNS 則從指定的位址池挑選一個虛擬 IP 回傳給應用程式,並記錄「網域與虛擬 IP」的對應關係。應用程式仍照常發起連線,但該 IP 並非網站伺服器的實際位址,必須由本機代理接手處理。

例如,應用程式查詢 example.com 時,本機 FakeDNS 可以分配 198.18.0.1。應用程式連線至該位址的 443 連接埠時,代理會查詢對應表,將目標還原為 example.com:443,再比對網域規則並選擇出口。這只是流程示例,不代表每次查詢都會取得相同位址。

查詢網域 分配虛擬 IP 攔截目標連線 還原原始網域 比對出口規則

FakeDNS 解決的是「連線抵達代理時只剩下 IP,網域資訊已遺失」的問題。它不提供節點,也不能取代 VMess、VLESS 或 Trojan,更不會改變 REALITY 的握手設定。訂閱提供連線參數;FakeDNS 則保留本機連線與網域的關聯,兩者位於不同層級。

198.18.0.0/15
以下範例使用的 IPv4 位址池
53
傳統 DNS 常用的服務連接埠
4096
以下範例設定的對應池容量

網域還原和一般嗅探有何不同

一般協定嗅探會分析連線中的應用層資訊,例如 HTTP Host 或 TLS ClientHello 中可見的伺服器名稱。FakeDNS 還原則依賴先前儲存的對應資料,不必等應用程式主動在負載中揭露網域。兩種方式可以搭配使用,但「啟用 HTTP/TLS 嗅探」不代表「已完成 FakeDNS 設定」。

這也說明了為什麼啟用 FakeDNS 不等於完全停用一般 DNS:應用端或許不必等待實際 DNS 解析,但建立直連、解析節點伺服器網域等環節仍可能需要一般 DNS。在遠端代理連線中,目標網域也可能由遠端繼續解析。

FakeDNS 與 TUN:必須打通的兩個入口

TUN 提供虛擬網路介面,用來接收符合路由條件的 IP 流量;FakeDNS 則提供虛擬 DNS 回應與對應資料。兩者經常搭配使用,是因為 TUN 能將前往虛擬 IP 的連線重新導回代理。但 TUN 本身不保證所有 DNS 查詢都已接管,也不代表一定使用某種 FakeDNS 實作。

DNS 處理入口

輸入
應用程式發出的網域查詢
處理
由指定的 DNS 模組分配虛擬 IP
檢查項目
系統 DNS、應用程式加密 DNS、IPv6 查詢

查詢未經過此入口,就不會建立可供後續還原的對應資料。

連線處理入口

輸入
應用程式連往虛擬 IP 的連線
處理
由 TUN 接收後交給對應的還原邏輯處理
檢查項目
虛擬位址範圍路由、對應資料生命週期、出口目標

不能將虛擬位址直接交給不認得該對應資料的另一套核心。

在 v2rayN 中,TUN 路徑與一般代理路徑可能採用不同的設定產生方式或處理模組。請勿將某個核心的 fakedns JSON 直接貼到另一套 TUN 設定格式中。請先確認目前選用的核心、實際使用的設定與記錄,再判斷 DNS 由哪一層處理。

  1. 先關閉 TUN,透過原有的系統代理確認節點能否正常連線,排除訂閱與伺服器端故障。
  2. 開啟 v2rayN 的「設定」→「參數設定」,檢查目前版本提供的核心與相關選項;分頁名稱可能隨版本變動,請以實際介面為準。
  3. 啟用 TUN 後檢查系統路由,確認虛擬位址範圍會進入接管路徑,而不是送往實體閘道。
  4. 同時檢查 DNS 接管狀態與應用程式內建的加密 DNS 設定,避免只接手業務連線,卻沒有建立網域對應資料。

V2Ray / Xray 設定:分配與還原必須成對

以下是支援相關欄位的 V2Ray / Xray 核心設定片段,用來說明欄位間的關係,並非完整的 v2rayN 匯入設定。內容不含入站監聽、節點出口及完整路由規則。圖形介面用戶端通常會產生這些內容,修改產生的檔案也可能在下次儲存時遭到覆寫。

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

dns.servers 中的 fakedns 表示使用虛擬 DNS 回應;頂層的 fakedns 則定義位址池與容量。本例的 4096 是示範容量,不是所有核心的預設值,也不是效能指標。此外,還必須將實際 DNS 查詢導入此 DNS 模組;只新增欄位不會自動接管系統查詢。

對於接收虛擬 IP 連線的入站,還必須啟用相應的還原機制。下方的 sniffing 物件應合併至相關入站物件中,而不是另一個頂層設定。實際支援的欄位請以使用中的核心為準。

{
  "sniffing": {
    "enabled": true,
    "destOverride": ["fakedns"],
    "routeOnly": false
  }
}

何時啟用:依連線方式評估

如果應用程式原本就透過 HTTP 代理,或使用帶有網域的 SOCKS 請求連線,代理可能已經取得網域,FakeDNS 帶來的額外效益通常有限。它更適合透明接管後只能看到目標 IP,且需要穩定套用網域規則的情況。

使用情境建議先檢查
使用 TUN 接管,主要依網域分流可評估啟用DNS 查詢與連線能否共用對應資料
瀏覽器使用明確設定的代理優先維持現況代理是否已取得網域
企業內部網路、區域網路服務探索先設定實際 DNS 解析例外內部網域、印表機與本機裝置存取
應用程式強制使用內建加密 DNS先處理查詢繞過 DNS 接管的問題查詢是否經過本機 DNS 模組
工具需要顯示目標的實際 IP為這類查詢保留一般 DNS 解析診斷結果是否被虛擬 IP 取代

結論:先確認網域是否遺失,再決定是否啟用

如果記錄中已顯示目標網域,且網域規則正常命中,請先保留現有 DNS 設定。只有在透明接管路徑中確實遺失網域,而且能同時接管查詢與連線時,才試用 FakeDNS。

198.18.0.0/15 是供網路效能測試使用的特殊用途位址範圍,不是公網網站位址,也不等同於常見的私有網段。若本機測試網路或企業環境已使用這段位址,請先排查路由衝突。改用其他位址池時,也必須確認核心支援與路由規劃,不能隨意用公網位址範圍取代。

如何驗證:別只看 DNS 查詢結果

驗證時必須涵蓋完整處理路徑。只看到以 198.18 或 198.19 開頭的位址,只能證明某次查詢收到虛擬回應,不能證明後續連線已還原網域或正確分流。反過來說,工具回傳實際 IP,也可能是因為它繞過了預期的 DNS 入口。

  1. 記錄基準狀態。儲存原始設定,選擇一個原本可正常存取的網域,並記下目前使用的節點與分流模式;測試期間不要同時更換協定。
  2. 重新發起查詢。啟用設定後重新啟動測試應用程式。在 Windows 可執行 ipconfig /flushdns 清除系統 DNS 快取,但瀏覽器自己的 DNS 與連線快取可能仍需另外清除。
  3. 檢查 DNS 入口。可使用 nslookup example.com 輔助檢查系統解析路徑,但此工具不一定能重現瀏覽器的加密 DNS 行為,不能單獨作為驗收依據。
  4. 查看連線記錄。確認虛擬目標是否已還原為原始網域,以及最後命中的出口。暫時提高記錄詳細程度後,測試結束時應恢復原設定,避免長期記錄存取網域。
  5. 交叉測試。分別測試代理網站、直連網站、內部網域與 IPv6 情境。只測試一個網頁,很容易漏掉直連解析循環或 AAAA 查詢繞過接管的問題。

常見問題與復原步驟

啟用後所有網頁都無法開啟,該先調整哪裡?

先還原原本的 DNS 模式並重新啟動測試應用程式,確認基本連線已恢復。接著檢查前往虛擬位址範圍的連線是否進入正確的入站,以及該入站是否啟用了對應還原。請勿先更換訂閱或傳輸協定。

網頁可以開啟,但內部網域解析失敗怎麼辦?

為內部網域設定使用區域網路 DNS 的實際解析例外,並保留相應的直連路由。內部解析器通常仰賴目前的網路環境,不能將所有內部網域都交給外部解析器,再期待取得相同結果。

為什麼只有部分應用程式沒有虛擬 IP?

檢查這些應用程式是否使用內建加密 DNS、已有快取,或直接連線至固定 IP。先選擇一個使用系統 DNS 的測試應用程式,重現完整處理路徑,再逐一處理不同應用程式的差異;直接使用 IP 的連線原本就沒有 DNS 對應資料可供還原。

v2rayNG 和 v2flyNG 能直接照搬桌面設定嗎?

不能直接照搬。v2rayNG 使用 Xray 核心,v2flyNG 使用 v2fly 核心;Android VPN 接管與桌面 TUN 的設定入口也不同。請確認應用程式是否提供相關功能、目前使用的核心是否支援對應欄位,並以應用程式實際產生的設定檢查結果。

復原時請依序「還原 DNS 設定、還原原路由、重新啟動接管服務、清除應用程式快取」。保留一份可正常使用的基準設定,比同時調整 FakeDNS、IPv6、嗅探與路由策略更容易找出問題。重新啟用時每次只變更一個環節,才能釐清故障是來自查詢繞過接管、對應失效,還是出口規則。

下載v2rayN依平台選擇用戶端