先確認網域由哪一端解析,再設定中國大陸網域優先使用當地 DNS,其餘網域則透過代理使用加密 DNS。本文適用於需要修改 V2Ray 或 Xray 設定的使用者,提供 DNS 與路由設定範例,並說明如何在 v2rayN 套用、回退機制與驗證限制,避免誤以為填入 DoH 位址就能接管所有應用程式的 DNS 查詢。
一、先分清應用程式、核心與伺服器端的 DNS 解析
設定 DNS 前,首先要確認「查詢是否會經過這裡」。應用程式將網域交給代理時,核心可能為了路由判斷或直連而進行解析,也可能把網域交由代理伺服器解析。若應用程式先在本機將網域解析成 IP,再把 IP 傳給代理,客戶端的 dns 區段不一定會參與這次查詢。
這個流程描述的是需要在本機解析的情況,不代表每次代理連線都得先查詢本機 DNS。若網域規則已能選出代理出站,目標網域可能會直接傳送到遠端。因此,本機 DNS 記錄中沒有該網域,並不足以證明設定失效。
- 系統 DNS:由作業系統的網路設定指定。僅啟用系統代理,不會自動將所有系統 DNS 查詢交給 V2Ray。
- 核心 DNS:由設定中的
dns定義,供核心相關的解析功能使用。它不會自動成為監聽系統 53 埠的服務。 - 瀏覽器安全 DNS:瀏覽器可能自行透過 HTTPS 查詢,略過作業系統的解析器。
- 伺服器端 DNS:代理出站將網域傳送到遠端後,解析結果取決於遠端的 DNS 與網路環境。
二、servers、domains、queryStrategy 各自控制什麼
servers 定義可用的解析伺服器;伺服器物件中的 domains 指定優先比對的網域;queryStrategy 則控制查詢的 IP 位址類型。三者分別回答「查詢哪台伺服器」、「優先由哪台伺服器處理」與「查詢哪種位址」,不要和網站連線的出站規則混為一談。
中國大陸網域優先解析
- address
223.5.5.5- port
53- domains
geosite:cn- skipFallback
true
優先處理符合中國大陸網域清單的查詢,不會參與未符合網域的一般回退。
其他網域解析
- address
https://1.1.1.1/dns-query- 傳輸方式
- HTTPS,預設連接埠 443
- domains
- 未指定,作為回退解析伺服器
- 查詢策略
- 沿用頂層設定
UseIPv4
還需為這個 DoH 目標設定代理路由,不能只填入解析位址。
domains 並不是「只有這些網域能使用此伺服器」的存取控制清單。符合條件的網域通常會優先使用該伺服器;其他網域仍可能透過回退機制使用某台伺服器。此處為中國大陸 DNS 伺服器加入 skipFallback: true,是為了避免它列入未符合網域的回退清單;這不代表停用所有 DNS 回退。
| 設定值 | 解析行為 | 使用條件 |
|---|---|---|
UseIP | 查詢 IPv4 與 IPv6 位址 | 確認實際使用的出站連線支援所需的 IP 位址類型 |
UseIPv4 | 僅查詢 IPv4 位址 | 適合在排除 IPv6 問題時使用 |
UseIPv6 | 僅查詢 IPv6 位址 | 需要可用的 IPv6 網路與相應的目標位址 |
本文使用 UseIPv4 縮小排查範圍,並不代表 IPv4 一定比較快。若網路與節點的 IPv6 均正常,可以改用 UseIP 再測試。這只會影響內建 DNS 的查詢,不會在全系統停用 IPv6。
三、中國大陸與其他網域分流的 DNS 設定範例
以下是設定頂層 dns 的片段,並非可獨立執行的完整用戶端設定。合併至現有 JSON 時,請取代原有的同名欄位,不要在同一個物件中重複加入兩個 dns。使用 geosite:cn 前,也請確認執行目錄中的網域規則資料可用。
{
"dns": {
"queryStrategy": "UseIPv4",
"servers": [
{
"address": "223.5.5.5",
"port": 53,
"domains": [
"geosite:cn"
],
"skipFallback": true
},
{
"address": "https://1.1.1.1/dns-query"
}
]
}
}
- 符合
geosite:cn的網域會優先交由223.5.5.5查詢,以保留中國大陸服務常見的就近解析結果。 - 未符合優先比對條件的網域會使用回退清單中的 DoH 伺服器;中國大陸 DNS 伺服器則因
skipFallback設定而排除。 - 若中國大陸 DNS 優先查詢失敗,且未另外停用回退,仍可能改用 DoH。這段設定表達的是優先順序,而非絕對隔離。
若需求是中國大陸網域查詢失敗後也絕不改用其他解析器,必須依照實際核心支援的功能設計嚴格的回退策略,不要只靠調整陣列順序推測結果。V2Ray 與 Xray 支援的擴充欄位和範圍不一定相同;複製其他核心的進階欄位前,請先確認目前使用的核心文件與啟動記錄。
此處使用含 IP 位址的 DoH 網址,減少「先解析 DNS 伺服器網域」的前置依賴。若改用含網域名稱的 DoH 服務,還需安排該網域的初始解析,避免解析器為了找到自身而陷入循環等待。請保留 DoH 的 TLS 憑證驗證,不要以停用驗證的方式處理連線錯誤。
四、為 DNS 查詢本身設定出站路由
加密解析與代理傳輸是兩回事。DoH 負責保護傳送至解析伺服器的查詢內容;路由則決定連線至解析伺服器時要直連或走代理。若目前的網路無法直連遠端 DoH,只填入網址仍會逾時。以下範例會將 DoH 目標 IP 送往代理,並讓中國大陸 DNS 直連。
{
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"ip": [
"1.1.1.1/32"
],
"port": "443",
"outboundTag": "proxy"
},
{
"type": "field",
"ip": [
"223.5.5.5/32"
],
"port": "53",
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"geosite:cn"
],
"outboundTag": "direct"
}
]
}
}
proxy 與 direct 是此範例使用的出站標籤,必須與現有 outbounds 中的 tag 完全一致。請將這幾條規則合併至現有路由的前段,不要覆蓋整份規則。未符合條件的流量仍由後續規則或預設出站處理;此片段不會替你設定預設出站。
- 一般 HTTPS DNS 位址:此範例中的
https://查詢會經由核心的路由調度處理,因此需為 DoH 目標設定相應路由。 - 具有本機直連語意的位址格式:例如支援此格式的核心所使用的
https+local://,其行為不同,不應直接套用此範例中的代理路由預期。 - 代理節點使用網域名稱:還需先確保節點位址能獨立解析,否則可能形成「連線遠端 DNS 需要代理,建立代理連線又需要該 DNS」的依賴循環。
routing.domainStrategy 與 dns.queryStrategy 是不同的設定。此處的 AsIs 表示路由不會為了比對 IP 規則而主動解析網域;改為 IPIfNonMatch 時,若沒有符合網域規則,便會嘗試解析後再比對 IP 規則。只有在需要依 IP 分流時才啟用,別為了「讓 DNS 生效」而盲目修改。
五、在 v2rayN 套用設定並進行驗證
修改 DNS 前,請先備份目前的設定。v2rayN 會依照介面設定產生核心設定檔;直接編輯暫存的產生檔,可能在切換節點或重新啟動核心後遭到覆蓋。常見的介面路徑為「設定」→「DNS 設定」;不同版本的介面項目可能有所調整,請確認編輯的是目前使用核心所對應的 DNS 設定,而不是另一個核心的欄位。
- 確認核心與設定來源。檢查目前節點使用的核心。本文的 JSON 適用於 V2Ray/Xray 設定結構;其他核心的 DNS 欄位不能直接照搬。
- 分別儲存 DNS 與路由設定。DNS 編輯區只填入該區域要求的物件,不要把整份頂層 JSON 填進單一伺服器輸入欄位。路由標籤請以實際產生的設定為準。
- 重新啟動核心並查看啟動記錄。先處理 JSON 語法錯誤、不支援的欄位或規則資料缺失等問題,再測試網頁。核心未能成功啟動時,網路測試結果沒有比較意義。
- 控制測試變因。選擇一個中國大陸服務網域,以及一個需要透過代理存取的網域,並記錄應用程式是否使用自訂的安全 DNS。修改後重新啟動測試中的應用程式,避免沿用既有連線。
- 檢查連線路徑。必要時暫時提高記錄層級,確認連往
1.1.1.1:443的連線是否使用代理出站,以及連往223.5.5.5:53的查詢是否直連;排查完成後請恢復原本的記錄層級。
判斷依據:先確認查詢路徑,再比較解析結果
只看到網頁能開啟,無法證明分流正確。請先確認查詢確實送至預期的解析器,再確認 DoH 連線經過代理;兩項都成立後,比較解析結果才有意義。
在 Windows 執行 ipconfig /flushdns 可以清除系統 DNS 快取,但不會同時清除瀏覽器自己的快取與核心的所有快取。單獨執行 nslookup 通常測試的是系統指定的解析器,不能用來直接證明核心的 dns 區段已生效。
六、DNS 污染防護的限制與常見問題
防止 DNS 污染的關鍵,是讓目標網域的查詢交由可信任的解析器處理,並保護查詢傳輸過程。中國大陸的 UDP DNS 仍是明文查詢;本文保留這項設定是為了配合當地服務的解析需求,不代表這條路徑具備與 DoH 相同的傳輸保護。若這條路徑發生異常,請改用目前核心支援且網路可連線的加密解析方式,再重新驗證路由。
已填入 DoH,為什麼仍顯示解析逾時?
先確認代理節點是否可用,再檢查 1.1.1.1:443 是否符合代理規則。若節點位址本身是網域名稱,也要排除初始解析造成的依賴循環。若記錄出現憑證時間錯誤,請先校準系統時間,不要停用憑證驗證。
中國大陸網站變慢,是分流規則沒有命中嗎?
先確認目前的 geosite:cn 資料是否涵蓋該網域,再檢查啟動記錄中是否有規則檔載入錯誤。網站也可能會載入多個資源網域,請逐一檢查,不能只根據網址列中的主網域判斷所有請求的解析路徑。
DNS 檢測網站顯示其他地區,算是 DNS 洩漏嗎?
不一定。檢測頁面通常顯示的是處理測試查詢的遞迴解析器出口,並不直接代表用戶端所在地。請分別檢查瀏覽器安全 DNS、伺服器端解析與本機核心解析這三條路徑,再判斷是否有原本應受保護的查詢以明文從本機送出。
已取得正確 IP,為什麼網頁還是無法開啟?
DNS 只負責回傳位址,不保證 TCP、TLS 或後續傳輸正常。確認解析結果後,請繼續檢查出站規則、節點連線與目標連接埠。若只有啟用 IPv6 後才失敗,可暫時使用 UseIPv4 進行對照測試,再排查 IPv6 連線問題。
同一網域由不同解析器回傳不同位址,不一定代表受到 DNS 污染。內容傳遞網路可能根據解析器位置與網路策略回傳不同節點;反過來說,回傳看似合理的公網位址,也不能證明解析結果可信。不要只因兩個位址不同就新增靜態對應;靜態位址可能過期,也會略過正常的服務調度。
- 每次只修改一個變因:解析伺服器、查詢的 IP 位址類型或出站路由,避免同時修改多項設定而無法找出原因。
- 暫時開啟的除錯記錄可能包含瀏覽過的網域與連線資訊。分享記錄前,請移除訂閱網址、驗證資料及其他敏感內容。
- 最後應同時測試中國大陸網站、代理網站,以及核心重新啟動後設定是否仍保留,而不只是重新整理一次網頁。