本文重點

FakeDNS 適合需要在透明代理中保留網域資訊的使用者,但不能單獨取代完整的 DNS 與路由設定。本文將說明位址映射、TUN 接管、Xray 設定與故障排查,協助你判斷用戶端是否具備必要條件,並透過記錄與清除快取驗證設定,而非只靠開關猜測是否生效。

FakeDNS 原理:以暫存位址保留網域資訊

FakeDNS 回傳的是本機映射位址,而非網站伺服器的真實位址。一般 DNS 查詢會將網域轉換為真實 IP;FakeDNS 則從預先設定的位址池分配一個位址,並記錄「網域與暫存位址」的對應關係。應用程式仍依照一般流程連線至該位址,代理接管後再根據映射還原網域,交由後續路由與出口處理。

查詢網域 分配虛擬位址 應用程式連線 TUN 接管 還原網域 比對出口

Xray 常見的 IPv4 位址池範例為 198.18.0.0/15,範圍從 198.18.0.0 到 198.19.255.255。這是保留供基準測試使用的位址範圍,不是公網伺服器位址,也不是常見的家用區域網路私有位址範圍。在設定正確的 FakeDNS 流程中,應用程式取得這類結果是正常現象。

這套機制的關鍵在於「位址可以還原成網域」。如果應用程式連線至虛擬位址時繞過代理,或接管連線的核心沒有對應的映射表,虛擬位址就無法正常用來存取網站。只在 DNS 設定中填入位址池,卻未設定連線接管與還原流程,通常只會讓原本能存取的網站連線逾時。

FakeDNS 與 TUN:接管流量不代表接管 DNS

TUN 負責將網路封包送進代理處理,FakeDNS 則負責讓網域資訊在此過程中得以還原。兩者經常搭配使用,但並非同一項功能。啟用 TUN 後,應用程式的連線可能已被接管,但 DNS 查詢仍可能送往路由器、企業 DNS,或瀏覽器自己的加密 DNS 服務;此時取得的仍是真實位址,也不會建立 FakeDNS 映射。

環節 必要條件 缺少時的情況
DNS 入口 將目標查詢交給已設定的 FakeDNS 仍回傳真實 IP,無法確認虛擬位址映射
連線接管 位址池流量進入正確的 TUN 或透明代理入口 應用程式直接連線至保留位址並逾時
網域還原 處理連線的核心能查詢到對應映射 路由只看到虛擬位址,無法依網域分流
最終出口 直連或代理出口能處理還原後的目標 規則已命中,但連線仍失敗

網域還原與流量嗅探也應分開看待。HTTP Host、TLS 中的伺服器名稱等資訊可協助辨識部分連線,但並非每種連線都能讀取到網域。FakeDNS 依靠先前的查詢映射還原網域,不必完全仰賴應用層內容;不過,若應用程式直接使用 IP,或未經過該 DNS 入口,FakeDNS 也無法憑空找出原始網域。

判斷前先確認四個環節,再啟用 FakeDNS

DNS 入口、位址池路由、映射還原與出口處理必須串成完整流程。只確認 TUN 圖示已開啟並不足夠;應在記錄中確認還原出的目標網域與命中的出口,再判斷網域分流是否真正生效。

Xray 設定:分別檢查位址池與入口還原

Xray 的 FakeDNS 必須搭配位址池設定與實際 DNS 使用方式。以下是用於說明的頂層設定片段,並非可直接執行的完整用戶端設定。內容僅展示 IPv4 虛擬位址池與內建 DNS 的伺服器選擇;完整設定還需要入口、路由與出口,並確保應用程式的查詢確實進入此 DNS 模組。

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

poolSize 表示映射池容量,不是 DNS 監聽連接埠,也不是網路速度參數。範例中的 65535 不代表網站能取得 65535 條並行連線。FakeDNS 的 DNS 設定也不能單獨處理所有真實解析需求:需要真實 IP 的直連目標、代理伺服器網域,以及特殊內網網域,都應有明確的真實解析路徑,避免連線準備階段也取得無法直接使用的虛擬位址。

位址池與 DNS

頂層欄位
fakedns
IPv4 位址池
198.18.0.0/15
範例容量
65535
DNS 伺服器項目
fakedns

先確認查詢已進入此模組,再查看回傳位址是否落在設定的位址池範圍內。

Xray 入口還原

入口欄位
sniffing
啟用狀態
enabled: true
覆寫目標
destOverride: ["fakedns"]
檢查對象
實際接收虛擬位址連線的入口

此處僅列出還原相關欄位;其他嗅探選項請與現有設定合併。

對支援此機制的 Xray 入口而言,sniffing.destOverride 中的 fakedns 用於查詢映射並還原目標。請勿將這些欄位直接貼到其他核心的設定中,也不要只修改未接收 TUN 流量的入口。如果用戶端會自動產生設定,手動修改暫存檔也可能在下次啟動時被覆寫,建議優先使用用戶端提供的設定介面。

適用情境:以網域分流為優先,內網解析另行保留

FakeDNS 較適合「流量經透明方式接管,但仍需依網域選擇出口」的情境。例如,部分應用程式不使用系統 HTTP 代理,啟用 TUN 後只能看到連線目標 IP;透過 FakeDNS 保留映射,可讓路由重新取得網域條件。它改善的是辨識流程,不會改變訂閱節點的品質,也不會自動將 VMess 轉換成 VLESS。

使用情境 建議 設定重點
TUN 模式下需要網域分流 條件齊備時可啟用 確認映射還原後,再比對網域規則
僅使用明確設定的 HTTP 或 SOCKS 代理 先確認是否已有網域目標資訊 已有網域資訊時,通常不必額外使用虛擬位址
企業內網與家用裝置探索 優先保留真實解析 內網網域交由對應 DNS 處理,區域網路流量則視需求繞過代理
應用程式會檢查真實 IP 或位址歸屬 先測試單一應用程式的相容性 必要時為該應用程式或網域設定真實解析例外

區域網路印表機、企業內部服務及依賴本機探索的應用程式,不宜一律交由 FakeDNS 處理。多點傳播探索與一般單點傳播 DNS 也不是同一套機制。應先保留這些服務原有的解析路徑,再逐步擴大接管範圍;若將內部網域交給公用 DNS 解析,即使關閉 FakeDNS,仍可能無法存取。

建議順序:先讓一般 DNS 與 TUN 穩定運作,再加入虛擬位址映射

新設定應先測試直連、代理與內網存取這三類目標。只有確實遇到網域辨識資訊不足時,再加入 FakeDNS 並重做這三類測試,才能區分 DNS 問題與節點、權限或路由問題。

驗證與排查:先檢查解析,再確認目標與出口

驗證 FakeDNS 不應只看網頁能否開啟。網頁可能因既有連線、快取或瀏覽器獨立 DNS 而正常載入,無法證明新設定已生效。建議一次只變更一項設定,記錄變更前後的 DNS 結果、連線目標與出口標籤;以下步驟不依賴特定用戶端版本,也不假設某個選單名稱適用所有版本。

  1. 確認實際使用的核心。在 v2rayN 的核心選擇介面或執行記錄中確認啟動的核心,並記下目前用戶端與核心版本。若設定出現「未知欄位」錯誤,應先確認欄位所屬的核心,而非反覆切換訂閱節點。
  2. 檢查 DNS 入口。一般 DNS 常使用 UDP 或 TCP 的 53 連接埠,但內建 DNS 模組不代表系統已在該連接埠監聽。請確認用戶端的 DNS 接管設定與系統 DNS 位址,不要直接假設 127.0.0.1:53 可以使用。
  3. 清除舊快取。關閉測試中的應用程式並清除系統快取,再重新啟動應用程式;瀏覽器可能另有 DNS 快取與安全 DNS 設定,請分別確認。
  4. 確認位址與還原結果。查詢結果應符合所設定的位址池,連線記錄則應顯示還原後的網域或相應處理資訊。只看到 198.18.x.x 並不能證明出口連線成功。
  5. 確認真實解析與路由。檢查直連目標與代理伺服器網域能否取得真實位址,再確認網域規則命中的出口。排查完成後,請恢復一般記錄層級,避免長期保留大量連線資訊。

在 Windows 上可使用以下命令清除系統 DNS 快取,並查看各網路介面設定的 DNS 伺服器。第二個命令需在 PowerShell 中執行。這些命令可協助定位 DNS 入口,不會自動修改用戶端規則,也無法清除應用程式內的所有快取。

ipconfig /flushdns

Get-DnsClientServerAddress -AddressFamily IPv4

如果測試工具回傳真實位址,請先確認它查詢的是哪一台 DNS 伺服器,再判斷 FakeDNS 是否失效;若回傳虛擬位址但連線逾時,應優先檢查位址池流量是否進入正確入口,以及映射是否仍有效。重新啟動核心後,應用程式可能仍使用舊的虛擬位址,而新核心已沒有對應映射;此時重新啟動應用程式並清除快取,比反覆更換節點更有效。

常見問題:啟用、延遲與關閉後如何恢復

啟用 FakeDNS 後,為什麼網域仍解析成真實 IP?

先檢查測試應用程式使用的 DNS 入口。瀏覽器安全 DNS、系統原有 DNS,或用戶端設定的真實解析例外,都可能回傳真實 IP。使用同一個網域分別確認系統查詢結果與應用程式存取記錄,看看它是否被分配給 FakeDNS;不要為了看到虛擬位址而刪除必要的內網或伺服器網域例外。

回傳以 198.18 開頭的位址,是不是 DNS 遭到污染?

先確認位址池設定。若設定為 198.18.0.0/15,該範圍內的回應可能正是 FakeDNS 的預期結果。接著檢查映射還原與出口記錄;若從未啟用這類功能卻出現該位址,則應檢查目前使用的 DNS 伺服器,以及網路中的其他接管設定。

FakeDNS 能降低節點延遲或提升下載速度嗎?

FakeDNS 不會直接改善節點至目標之間的連線品質。分配虛擬位址可能省去應用程式等待真實解析的一個步驟,但後續仍可能需要真實解析並建立連線。測試時請使用相同節點、目標與網路,分別記錄首次連線與持續傳輸的表現,不要只憑一次開啟網頁的速度下結論。

關閉 FakeDNS 後,為什麼應用程式仍無法開啟?

應用程式可能仍快取著虛擬位址,或維持舊連線。請關閉相關應用程式、還原原有 DNS 與接管設定,在 Windows 執行 ipconfig /flushdns 後重新啟動應用程式。若仍無法連線,再檢查路由與 DNS 伺服器是否也一併還原;不要只關閉 TUN,讓快取中的虛擬位址繼續繞過代理。

最終判斷應以完整連線流程為準:應用程式取得什麼位址、哪個入口接管連線、能否還原網域,以及規則選擇了哪個出口。若要進一步調整路由與代理模式,請參閱完整設定手冊;初次設定用戶端,則先依照使用指南建立可正常運作的基礎,再加入 FakeDNS。

依平台下載用戶端

選擇 Windows、macOS、Android 或 Linux 用戶端,先匯入訂閱並測試基本連線,再確認核心與 DNS 接管設定。