本文速覽

FakeDNS 會先將網域名稱暫時對應至合成 IP,等連線進入代理後再還原網域名稱。適用於需要保留網域資訊的透明代理連線,不是單純的加速開關。本文將依序說明位址分配、DNS 接管、TUN 流量回送與嗅探還原,並提供設定範例、驗證步驟及停用後的復原方式,適合已能正常連線、準備調整 DNS 的使用者。

FakeDNS 是什麼:回傳對應位址,而非網站的真實 IP

一般 DNS 查詢會將網域名稱解析為伺服器的真實位址;FakeDNS 則會先分配一個僅供目前代理連線識別的位址。例如,應用程式查詢 example.com 時,FakeDNS 可以回傳位址池中的 198.18.0.1,並在記憶體中記錄兩者的對應關係。這個位址不是網站伺服器的位址,也不應直接交由公網路由存取。

應用程式查詢網域名稱 分配合成位址 連線進入代理 依對應關係還原網域名稱 選擇路由與出口

接著,應用程式會連線至合成位址。代理收到連線後,會從對應表找回原始網域名稱,再依網域規則決定直連或走代理。最後如何取得真實 IP,取決於出口類型與 DNS 解析策略:可能由本機直連出口解析,也可能將網域名稱交由遠端代理處理。FakeDNS 並不會免除最後連線至真實伺服器的需求。

常見範例使用 198.18.0.0/15,也就是從 198.18.0.0 到 198.19.255.255 的特殊用途位址範圍。這段位址原本用於網路設備基準測試,不是可任意存取的公網網站位址,也不是一般區域網路常用的私有位址範圍。將它用作合成位址池前,仍須確認企業網路或測試網路並未實際使用這段位址。

131,072
/15 位址池包含的 IPv4 位址總數
53
傳統 DNS 常用的 UDP/TCP 連接埠
443
DoH 通常使用的 HTTPS 連接埠

FakeDNS、嗅探與 TUN:三者各自負責什麼

這三者常出現在同一個設定介面,但負責的工作並不相同。FakeDNS 管理位址與網域名稱的對應關係;TUN 透過虛擬網路介面,將符合條件的 IP 流量送進客戶端;嗅探或入站目標還原機制,則會從連線資訊還原出可供路由與出口使用的目標。只啟用其中一項,無法確保整條連線路徑正常運作。

環節負責工作缺少時常見的情況
FakeDNS為 DNS 查詢分配合成位址,並儲存網域對應關係應用程式仍取得真實 IP,無法據此判斷對應流程已生效
TUN 或透明接管將連往合成位址的連線送回代理處理應用程式取得合成位址後,連線卻未進入對應的代理入站
FakeDNS 目標還原查詢對應表,將合成位址還原為網域名稱記錄中持續出現合成位址,出口卻嘗試連線至錯誤目標
真實 DNS 解析與出口完成所需的真實 DNS 解析並連線至伺服器網域名稱已還原,但直連 DNS 解析或代理出口仍然失敗

HTTP Host、TLS SNI 嗅探與 FakeDNS 對應還原並非完全相同的機制。前兩者會嘗試從協定資料中識別網域名稱,結果會受到協定、加密方式與應用程式行為影響;FakeDNS 還原則主要依賴先前儲存的對應關係。若應用程式直接連線至真實 IP、略過客戶端自行解析,或繼續使用上次執行時留下的合成 IP,就可能找不到可用的對應資料。

判斷方式:先確認 DNS 查詢與連線使用同一套對應資料

如果 FakeDNS 在一處分配位址,但連線卻進入另一個程序或另一套對應表,請先修正接管路徑;切換 VMess、VLESS 或更換節點,都無法補回遺失的網域對應資料。

啟用時機:確有網域規則需求,再確認接管條件

當透明代理收到的主要是 IP 連線,而路由規則又需要原始網域名稱時,才值得考慮使用 FakeDNS。它可降低「先解析出真實 IP,再猜測這個 IP 對應哪個網域」的不確定性,也能讓部分請求不必等待本機取得真實解析結果,就進入後續處理。但 FakeDNS 不保證下載速度變快,也不會改變節點頻寬或線路壅塞情況。

瀏覽器內建的安全 DNS、應用程式自帶的 DoH 等功能也必須一併檢查。接管傳統 UDP 53 查詢,不代表 HTTPS 內的 DNS 請求也會交由 FakeDNS 處理。只封鎖 443 連接埠會影響一般網頁瀏覽,不能當作通用解法;應檢查應用程式的 DNS 選項,確認由應用程式自行解析,還是交由客戶端統一處理。

設定欄位:位址池、DNS 與入站還原必須搭配使用

v2rayN 是桌面客戶端;v2rayNG 是使用 Xray 核心的 Android 客戶端;v2flyNG 使用 v2fly 核心。介面會產生或載入核心設定,但三款客戶端的選單、可用開關與產生的設定內容並不相同。不要將某個客戶端的介面截圖視為所有版本都適用的操作路徑,應以目前執行中的核心所支援的設定及記錄為準。

位址分配端

位址池欄位
fakedns[].ipPool
範例網段
198.18.0.0/15
容量欄位
fakedns[].poolSize
範例容量
65535 個對應項目

容量不是有效期限或連線數上限;對應項目的淘汰方式須依各核心的實作判斷。

查詢與還原端

DNS 服務項目
dns.servers 中的 fakedns
入站開關
sniffing.enabled
還原類型
destOverride 中的 fakedns
流量條件
連往合成位址的連線進入符合條件的入站

有 DNS 設定不代表系統查詢已交由客戶端接管,仍須檢查客戶端的 DNS 轉送與路由設定。

以下 JSON 範例用來說明欄位之間的關係,展示常見 V2Ray 風格的 IPv4 FakeDNS 設定。範例省略了入站、出口、路由與真實 DNS,並非可直接覆寫客戶端設定的完整內容。Xray 與 v2fly 的不同版本可能在行為或欄位上有所差異,儲存前應先確認目前使用的核心是否支援。

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

負責還原合成位址連線的入站,常見嗅探設定如下。這裡的 fakedns 是目標還原類型,不代表同時啟用了所有 HTTP、TLS 嗅探功能。不要為了讓「選項看起來完整」,就把其他版本使用的類型名稱也一併複製過來。

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

啟用後如何驗證:分別檢查 DNS、對應關係與路由

驗證重點不是「開關顯示已啟用」,而是同一次存取從網域查詢到最終出口都能得到合理結果。建議先記錄目前的代理模式、DNS 設定與核心類型,每次只調整一組設定。訂閱中的伺服器位址、連接埠與使用者識別資料並非 FakeDNS 位址池參數,測試時不必更動。

  1. 建立基準。停用 FakeDNS 時,確認在相同網路下能正常存取目標網站,記錄使用的是系統代理還是 TUN,並留存一份原始設定。
  2. 確認查詢路徑。啟用後,使用一個重新執行 DNS 查詢的網域進行存取,檢查 DNS 記錄是否進入預期的處理流程;若設定要求該查詢使用 FakeDNS,回覆位址應來自設定的位址池。
  3. 確認連線回送。查看連線或核心記錄,確認連往合成位址的連線已進入代理,並在可檢視的記錄階段還原出網域名稱。不同記錄層級顯示的資訊可能不同,不能只憑一筆 IP 記錄就判定失敗。
  4. 確認分流結果。分別測試一個預期直連及一個預期走代理的網域,核對實際使用的出口。只測試網頁能否開啟,無法證明路由規則有正確比對。
  5. 補測相容性。檢查區域網路服務、應用程式內登入與背景網路連線;若已啟用 IPv6,也要檢查 AAAA 查詢,避免只驗證 A 記錄就認為所有流量都已接管。

在 Windows 上可執行 ipconfig /flushdns 清除系統 DNS 快取;瀏覽器或其他應用程式可能仍保留自己的快取與連線,須先結束再重新開啟。在 Android 上可先停止客戶端連線,再關閉並重新開啟測試用的應用程式。不要為了取得新結果,同時反覆切換網路、節點、協定與 DNS,否則測試結果就無法比較。

測試範圍:命中位址池不代表連線成功

查詢回傳合成位址,只能證明位址分配流程已執行;還必須確認連線進入正確的入站、網域名稱成功還原,並命中預期出口,才能判斷這次設定已形成完整流程。

常見問題:延遲、解析結果與重新啟動後失效

啟用後查詢變快,為什麼下載速度沒有變?

合成回覆縮短的是部分本機 DNS 解析等待時間,不會提高遠端節點的頻寬。請分別比較首次開啟網頁所需時間與持續下載速度;若下載速度仍慢,應檢查線路、節點負載與封包遺失,而不是繼續擴大位址池。

查詢工具回傳真實 IP,是否代表 FakeDNS 沒有生效?

先確認工具實際查詢的是哪個 DNS,以及該網域是否應使用 FakeDNS。工具可能略過系統解析介面、明確指定其他 DNS 伺服器,或命中真實解析例外規則。搭配 DNS 記錄確認查詢路徑,比只看單次查詢結果更可靠。

客戶端重新啟動後,部分應用程式突然無法連線?

應用程式可能仍快取舊的合成位址,但新程序的對應表已重新建立。請先結束相關應用程式,清除可控制的 DNS 快取,再重新查詢並連線;不要假設客戶端重新啟動後,先前的位址對應關係仍會保留。

區域網路網域名稱或印表服務異常,該調整哪裡?

先暫時恢復真實 DNS,確認問題是否與 FakeDNS 有關,再透過客戶端支援的 DNS 分流與直連規則處理內網網域名稱。不要將所有需要交由區域網路 DNS 查詢的名稱都送進合成位址池;企業網路也須確認位址池不會與現有路由衝突。

停用與復原:同時撤銷 DNS 位址分配與流量接管

停用時要避免進入這種中間狀態:DNS 仍回傳合成位址給應用程式,但負責還原的入站或 TUN 已停止運作。較穩妥的做法是先暫停測試用的應用程式,還原原先搭配的 DNS 與代理設定,再重新啟動連線並清除舊快取。若客戶端提供整合式 FakeDNS 模式,應優先透過同一個入口復原,而非只手動刪除一行核心設定。

FakeDNS 的用途,是讓透明代理在進行路由判斷時仍能取得網域資訊。對於已穩定運作的系統代理,維持簡單通常更容易管理;若 TUN 確實需要依網域分流,則應確認 DNS 查詢、位址對應、入站與出口彼此搭配。更多基礎設定請參閱完整手冊的 DNS 設定,先確認一般 DNS 解析流程,再加入合成位址這一層。