FakeDNS 是 V2Ray 的一種 DNS 模式:收到查詢時立即返回保留網段的虛擬 IP(如 198.18.0.0/15),把真實解析延後到出站階段,藉此減少 DNS 往返、降低首個封包的延遲。它最適合與 TUN 模式搭配,但要注意以 IP 比對的路由規則可能失效。
FakeDNS 的運作流程
FakeDNS 是 V2Ray 的一種特殊 DNS 模式。開啟後,當收到 DNS 查詢時,V2Ray 會立即返回一個保留網段的虛擬 IP(如 198.18.0.0/15),而不會等待真實 DNS 解析。這樣,應用程式可以立即發起連線,減少等待時間。
打個比方
傳統 DNS 就像「先查好地址再出門」,每次出門前都要花時間查地址;FakeDNS 則是「先隨便給個門牌號碼就出門,到了門口再問具體地址」。對於需要頻繁存取大量網域的場景(如瀏覽網頁、使用通訊軟體),後者能明顯減少等待。
收到 DNS 查詢
應用程式請求解析某個網域,V2Ray 的 DNS 模組攔截該查詢。
返回虛擬 IP
V2Ray 立即返回保留網段內的一個虛擬 IP,應用程式馬上發起連線。
出站還原網域
流量進入路由階段,V2Ray 根據對照表把虛擬 IP 還原為真實網域。
依網域轉發
路由規則依網域比對出站,流量走代理或直接連線。
FakeDNS 能加速的場景
FakeDNS 特別適合需要頻繁解析網域的場景,例如瀏覽網頁、使用通訊應用程式。在這些場景中,傳統 DNS 解析需要多次往返,而 FakeDNS 可以立即返回結果,大幅減少延遲。
哪些場景效益最大
網頁瀏覽、影音串流、即時通訊這類「網域多、解析頻繁」的場景,FakeDNS 的效益最明顯;而像線上遊戲、某些需要真實 IP 驗證的金融應用程式,FakeDNS 反而可能帶來問題。是否開啟,取決於你的主要使用場景。
開啟 FakeDNS
推薦DNS 查詢即時回應,首個封包延遲低,適合網頁瀏覽、通訊、影片等高頻解析場景。
關閉 FakeDNS
每次解析都走真實 DNS,延遲略高,但以 IP 比對的規則能正常運作。
與路由規則的搭配
使用 FakeDNS 時,建議優先使用網域規則,避免使用 IP 規則。因為 FakeDNS 返回的是虛擬 IP,以 IP 比對的規則可能無法正確運作。在 v2rayN 中,可以透過「參數設定」→「DNS」開啟 FakeDNS,並在「路由設定」中調整規則。
網域規則
推薦依網域比對,與 FakeDNS 的對應機制天然契合,分流準確。
IP 規則
以 IP 比對,但 FakeDNS 返回的是虛擬 IP,規則可能失效。
如果路由規則中包含以 IP 比對的規則,FakeDNS 可能無法正確比對。建議將網域規則放在 IP 規則之前。
FakeDNS 與 TUN 模式搭配
FakeDNS 與 TUN 模式搭配使用時效果最佳。TUN 模式接管全部流量,FakeDNS 可以加速所有的 DNS 查詢。但需要注意的是,FakeDNS 並不適用於所有場景,例如以 IP 比對的路由規則可能無法正確比對虛擬 IP。
在 TUN 模式下,所有應用程式的 DNS 查詢都會被核心接管,因此 FakeDNS 的效益會被放大。如果你同時開啟了 TUN 模式與 FakeDNS,建議把路由規則中的網域規則放在最前面,確保分流準確。
如何開啟 FakeDNS
在 v2rayN 中,進入「參數設定」→「DNS」→「開啟 FakeDNS」。開啟後,v2rayN 會在產生的設定檔中加入 fake-dns 伺服器。在 v2rayNG 中,進入「設定」→「DNS」→「開啟 FakeDNS」。
{
"dns": {
"servers": [
{
"address": "fake-dns",
"domains": [
"geosite:geolocation-!cn"
]
}
]
}
}
上面的範例中,fake-dns 被設定為處理非中國大陸網域的解析。這樣,非中國大陸網域會立即返回虛擬 IP,而中國大陸網域仍然使用真實 DNS 伺服器。
想讓所有網域都走 FakeDNS?
可以把 domains 改為 ["geosite:geolocation-!cn", "geosite:cn"],或直接省略 domains 欄位。但要注意,把中國大陸網域也交給 FakeDNS 後,國內網站的解析也會被延後到出站階段,可能影響直接連線速度。
FakeDNS 的限制
FakeDNS 並非萬能。對於需要真實 IP 的場景(如某些應用程式會驗證 IP 位址),FakeDNS 可能導致問題。此外,FakeDNS 會增加核心的記憶體使用量,因為核心需要維護網域與虛擬 IP 的對照表。在低階裝置上,需要權衡是否開啟。
容易被忽略的問題
FakeDNS 返回的虛擬 IP 屬於保留網段(如 198.18.0.0/15),如果某個應用程式或遊戲對目標 IP 做了硬編碼驗證,或使用了「以 IP 直接連線」的策略,就可能出現連線異常。遇到這類情況,把相關網域加入直接連線規則,或直接關閉 FakeDNS 即可。
推薦設定
- DNS 伺服器
- fake-dns + 真實 DNS 兜底
- 路由規則
- 以網域規則為主
- 適用場景
- TUN 模式 + 高頻解析
不推薦設定
- DNS 伺服器
- 僅 fake-dns
- 路由規則
- 大量 IP 規則
- 適用場景
- 對真實 IP 敏感的應用程式
開啟後部分應用程式打不開
這些應用程式可能驗證了真實 IP。嘗試關閉 FakeDNS,或把相關網域加入直接連線規則。
以 IP 的規則不生效
FakeDNS 返回的是虛擬 IP,以 IP 比對會失效。改用網域規則,並把網域規則放在 IP 規則之前。
記憶體使用量升高
核心需要維護網域與虛擬 IP 的對照表。低階裝置上可關閉 FakeDNS,改用一般 DNS。
什麼時候值得開
如果你用 TUN 模式接管全部流量,且路由以網域規則為主,FakeDNS 能明顯降低首個封包的延遲。反之,如果路由大量依賴 IP 規則,或應用程式對真實 IP 敏感,建議保持關閉。
FakeDNS 會洩漏 DNS 嗎?
不會。FakeDNS 只是把解析延後到出站階段,真實解析仍由你設定的 DNS 伺服器完成,網域不會明文暴露給代理伺服器。
FakeDNS 和一般 DNS 能同時用嗎?
可以。你可以讓 FakeDNS 只處理部分網域(如 geosite:geolocation-!cn),其餘網域走真實 DNS 伺服器。