設定進階 · 系統查閱手冊

V2Ray 進階設定手冊

這份手冊面向已經能完成基礎訂閱匯入的 v2rayN 使用者。快速上手教學解決「怎麼連上」的問題,本頁解決「怎麼連得更穩、更符合自己的使用習慣」的問題——訂閱分組、伺服器過濾、路由分流、DNS、TUN、FakeDNS、多訂閱與自訂出站,每一章都可以單獨查閱。

訂閱分組與伺服器過濾

訂閱分組是 v2rayN 管理多個機場或自建訂閱的基礎手段。很多使用者一開始只新增一個訂閱,把所有節點混在一起;等節點數量超過幾十個,再想找到某個特定地區的節點就變得很費勁。訂閱分組解決的就是這個問題:把不同來源的節點放進獨立的分組,分組之間互不干擾,更新、篩選、延遲測試都按組進行。

在 v2rayN 主介面中,開啟「訂閱分組」選單,進入「訂閱分組設定」。在這裡可以新增分組,並為分組命名,例如「主力機場」「備用自建」「工作專用」。每個分組可以綁定一個或多個訂閱位址。綁定完成後,v2rayN 會把該訂閱拉取到的節點歸入這個分組,主介面的伺服器列表會按分組顯示為樹狀結構,展開某個分組就能看到該分組下的全部節點。

分組的另一個實用功能是獨立的自動更新間隔。在訂閱分組設定裡,可以給每個分組分別設定更新間隔,例如主力機場每 12 小時更新一次,備用自建每 24 小時更新一次。v2rayN 會在背景按照這個間隔自動拉取訂閱,不需要手動點擊重新整理。這樣即使某個訂閱暫時失效,也不會影響其他分組的正常更新。

伺服器過濾是訂閱分組的自然延伸。當節點數量很多時,伺服器列表上方的篩選框可以按協定類型(VMess / VLESS / Trojan / Shadowsocks)過濾,也可以按延遲、地區、分組排序。過濾後的檢視可以一鍵全選,然後批次測試延遲。延遲測試時,建議在「設定—參數設定」裡把測試 URL 改成自己平時造訪的位址,例如一個常用的網頁或生成式 204 頁面,這樣測出來的延遲更接近實際使用體驗。部分節點對預設測試 URL 有特殊處理,換一個目標位址能避免誤判。

訂閱分組與伺服器過濾結合起來,能形成一套很實用的工作流程:先按訂閱來源分組,再在組內按協定或延遲篩選,最後把篩選結果透過「設定」裡的「伺服器排序」固定下來。日常使用時只需要展開對應分組,選擇延遲最低的節點即可。

如果希望從設定檔層面理解訂閱分組,v2rayN 的 guiConfig.json 中有一個 subItem 陣列,每個元素代表一個訂閱項。下面是一個簡化的範例,展示了訂閱項的基本欄位:

{
  "subItem": [
    {
      "id": "a1b2c3d4",
      "remarks": "主力机场",
      "url": "https://example.com/subscribe?token=xxxx",
      "enabled": true,
      "autoUpdateInterval": 12
    },
    {
      "id": "e5f6g7h8",
      "remarks": "备用自建",
      "url": "https://home.example.net/sub",
      "enabled": true,
      "autoUpdateInterval": 24
    }
  ]
}

url 欄位是訂閱連結,remarks 是顯示名稱,enabled 控制該訂閱是否參與更新,autoUpdateInterval 是以小時為單位的自動更新間隔。手動編輯這個檔案前,建議先關閉 v2rayN,編輯完成後再重新開啟,避免 GUI 覆蓋修改。

路由規則實戰

路由規則決定流量往哪裡走:是直連、走代理,還是直接阻斷。對於大多數使用者來說,預設的「繞過大陸」規則已經足夠;但如果需要更精細的分流——比如某些網域強制走代理、某些 IP 區段強制直連——就需要手動編輯路由規則。

路由規則依賴兩個資料集合:geosite 是網域集合,geoip 是 IP 集合。例如 geosite:cn 包含中國大陸常見網域,geoip:cn 包含中國大陸 IP 區段。v2rayN 內建的規則範本就是基於這兩個集合拼裝出來的。在「設定—路由設定」裡,可以直接選用內建範本,例如「全域代理」「繞過區域網路」「繞過大陸」等。

如果內建範本不滿足需求,可以編輯 config.json 的 routing 部分。路由規則是一個陣列,按照從上到下的順序逐條匹配,第一條命中的規則生效,後面的規則不再執行。因此規則的排列順序非常重要:通常把直連規則放在最前面,代理規則放最後,作為備援。

下面是一份典型的「中國大陸直連、海外走代理」的規則組:

{
  "routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      { "type": "field", "domain": ["geosite:cn"], "outboundTag": "direct" },
      { "type": "field", "ip": ["geoip:cn"], "outboundTag": "direct" },
      { "type": "field", "domain": ["geolocation-!cn"], "outboundTag": "proxy" }
    ]
  }
}

domainStrategy 控制網域匹配的順序。預設值是 AsIs,即只按網域匹配;改成 IPIfNonMatch 後,如果一個網域沒有命中任何網域規則,v2ray 會先解析該網域的 IP,再拿 IP 去匹配 geoip 規則。這樣能涵蓋那些沒有收錄在 geosite 裡的網域,代價是首次造訪時多一次 DNS 解析。

三個規則的邏輯是:先匹配中國大陸網域,直接出站;再匹配中國大陸 IP,直接出站;最後匹配「非中國大陸地理位置的網域」,走代理。這裡 geolocation-!cn 是 v2ray 內建的一個特殊網域集合,等價於「除中國大陸以外的地理位置所涵蓋的網域」。

規則不生效時,按以下順序排查:第一,確認 outboundTag 的值是否存在。v2rayN 預設代理出站的標籤是 proxy,直連出站是 direct,如果自訂出站時改了標籤,路由規則裡也要同步修改。第二,檢查規則順序。如果某條規則寫在了更寬泛的規則後面,可能永遠匹配不到。第三,檢查 domainStrategy。如果網域沒有命中任何網域規則,又沒啟用 IPIfNonMatch,該網域就不會走 geoip 匹配,可能漏掉。第四,確認網域是否真的在 geosite 裡。某些冷門網域沒有收錄,需要手動把網域加進規則,例如 "domain": ["example.com", "geosite:cn"]

路由規則與訂閱分組配合使用,可以實現很精細的流量調度:把某個分組的節點作為「工作專用」,在路由規則裡把辦公相關網域指向這個分組的代理出站。這比手動切換節點更穩定。

關於中國大陸與海外分流的更完整設定範例,可參考本站部落格文章《v2rayN 路由規則設定實戰:中國大陸直連、海外走代理的完整分流方案》。

DNS 設定最佳化

DNS 解析是網路造訪的第一步。在代理情境下,DNS 解析的結果可能影響流量走向:如果 DNS 被污染,即使代理節點正常,也可能出現「連上了但打不開網頁」的情況。因此,DNS 設定最佳化是進階設定裡非常關鍵的一環。

v2rayN 的 DNS 設定位於「設定—參數設定」中。介面上通常有「遠端 DNS」和「本機 DNS」兩個輸入框。遠端 DNS 走代理網路,用於解析海外網域;本機 DNS 走直連網路,用於解析中國大陸網域。常見的遠端 DNS 有 1.1.1.18.8.8.8,常見的本機 DNS 有 223.5.5.5(阿里)和 119.29.29.29(騰訊)。

如果希望更精細地控制 DNS 查詢,可以編輯 config.json 的 dns 部分。下面是一個按網域分流 DNS 查詢的範例:

{
  "dns": {
    "servers": [
      { "address": "1.1.1.1", "domains": ["geosite:geolocation-!cn"] },
      { "address": "223.5.5.5", "domains": ["geosite:cn"] },
      { "address": "8.8.8.8" }
    ]
  }
}

這段設定的意思是:非中國大陸地理位置的網域(geosite:geolocation-!cn)使用 1.1.1.1 解析;中國大陸網域(geosite:cn)使用 223.5.5.5 解析;其他未匹配的網域使用 8.8.8.8 作為備援。這裡 domains 欄位是可選的,不寫就表示該伺服器作為預設備援。

DNS 防洩漏是另一個重要話題。如果系統代理沒有接管所有流量,某些瀏覽器擴充功能或背景應用程式可能繞過代理,直接向系統 DNS 發起查詢,導致解析結果被污染。解決方式有兩種:一是使用 TUN 模式(下一章介紹)接管全部流量;二是在 v2rayN 的 DNS 設定裡勾選「防止 DNS 洩漏」相關選項,把 DNS 查詢也納入代理通道。

設定 DNS 時需要注意:遠端 DNS 本身也要走代理,否則它自己就被污染了。v2rayN 預設會把遠端 DNS 的流量交給代理出站,這依賴於路由規則中的 DNS 分流邏輯。如果你手動編輯了路由規則,務必保留一條把 DNS 流量導向代理的規則,否則遠端 DNS 可能無法解析海外網域。

TUN 模式

TUN 模式是 v2ray 用戶端的一項進階功能:它建立一個虛擬網路卡,把整個系統的網路流量都接管過來,包括那些不遵守系統代理設定的應用程式、UDP 流量以及命令列工具。對一般使用者來說,TUN 模式意味著「開了之後,所有程式都走代理」,不需要逐個應用程式設定代理。

適用情境主要包括三類:一是需要全域代理的場合,比如某些應用程式只認系統代理但系統代理又照顧不到;二是 UDP 流量,比如遊戲、語音通話,系統代理通常不轉發 UDP;三是命令列工具,比如 git、curl,它們預設不讀取 Windows 的系統代理設定。

在 v2rayN 中開啟 TUN 模式很簡單:開啟「設定—參數設定」,找到「啟用 TUN 模式」開關並勾選。首次開啟時,Windows 會彈出 UAC 使用者帳戶控制提示,因為虛擬網路卡需要系統管理員權限才能建立。macOS 上則需要輸入管理員密碼或授權核心擴充。開啟後,v2rayN 會建立一個虛擬網路卡,並自動把系統預設路由指向這個網路卡。

TUN 模式與系統代理的區別需要說清楚。系統代理只對「主動讀取代理設定」的應用程式生效,瀏覽器、部分下載工具會讀取,但很多應用程式不會;TUN 模式是在網路卡層面接管,所有流量都會經過虛擬網路卡,因此涵蓋面更廣。但 TUN 模式也有代價:效能開銷比系統代理略高,因為所有流量都要經過一次虛擬網路卡;而且如果設定不當,可能影響區域網路造訪。

開啟 TUN 模式後,路由規則仍然生效。也就是說,你可以在 TUN 模式裡繼續做分流:中國大陸流量直連,海外流量走代理。TUN 模式只是提供了「流量入口」,具體的走向仍由路由規則決定。

下面是 v2rayN 的 config.json 中 TUN 部分的範例:

{
  "tun": {
    "enable": true,
    "stack": "system",
    "dns": "1.1.1.1"
  }
}

stack 是網路堆疊的實作方式。Windows 上推薦 system,它使用系統自帶的網路堆疊,相容性最好;macOS 上推薦 gvisor,能避免一些核心擴充衝突。如果 TUN 模式開啟後網路不穩定,可以嘗試切換 stack 參數。 dns 欄位指定 TUN 模式下使用的 DNS 伺服器,這裡寫 1.1.1.1 是走代理的遠端 DNS,也可以寫成 223.5.5.5 走直連,取決於你的分流需求。

使用 TUN 模式時有一個常見誤區:開啟 TUN 後,如果 DNS 設定不當,所有網域解析都會失敗,表現為「連上了但什麼都打不開」。此時先關閉 TUN 模式,檢查 DNS 設定,再重新開啟。另外,TUN 模式與某些 VPN 軟體、遊戲加速器可能衝突,如果同時使用,會出現路由表互相覆蓋的情況。建議只保留一個全域接管工具。

TUN 模式與下一章要講的 FakeDNS 是黃金搭檔:TUN 接管全部流量,FakeDNS 接管 DNS 解析,兩者配合可以做到真正的「無洩漏代理」。

FakeDNS

FakeDNS 是 v2ray 核心的 DNS 模組功能:它攔截所有 DNS 查詢,不向真實 DNS 伺服器請求,而是直接回傳一個偽造的內部 IP(通常在一個保留區段內)。真正的網域解析被推遲到流量真正要連線的時候,由 v2ray 根據路由規則決定走代理還是直連。

FakeDNS 的核心價值有三個:第一,DNS 查詢不會洩漏到外部。因為所有查詢都在本機被攔截,外部網路根本看不到你查詢了哪些網域。第二,網域解析速度更快。不需要等待 DNS 伺服器回應,本機直接回傳一個假 IP,後續的連線由 v2ray 的代理通道處理。第三,可以避免 DNS 污染。既然不向真實 DNS 伺服器查詢,污染也就無從談起。

在 v2rayN 中啟用 FakeDNS,通常需要手動編輯 config.json 的 dns 部分。v2rayN 的 GUI 不一定暴露所有 FakeDNS 選項,所以進階使用者更傾向於直接編輯設定檔。下面是一個啟用 FakeDNS 的範例:

{
  "dns": {
    "servers": ["1.1.1.1"],
    "queryStrategy": "UseIP",
    "fakeDns": {
      "enabled": true
    }
  }
}

fakeDns.enabled 設為 true 後,v2ray 會攔截所有 DNS 查詢。 queryStrategy 控制查詢策略,UseIP 表示只查詢 IP 記錄,避免不必要的 AAAA 查詢。需要注意的是,FakeDNS 與某些需要真實 IP 的應用程式不相容,比如 P2P 下載軟體、區域網路裝置探索。如果這些應用程式出現異常,需要在 FakeDNS 設定裡排除相關網域,或者關閉 FakeDNS。

FakeDNS 與 TUN 模式配合使用時,效果最好。TUN 模式接管所有流量,FakeDNS 接管所有 DNS 查詢,兩者結合形成一個完整的「透明代理」環境。在這種組合下,系統裡的任何應用程式都不需要單獨設定代理,瀏覽器、聊天工具、遊戲都會自動走代理,同時 DNS 查詢不會洩漏。

不過,FakeDNS 也有一個需要注意的地方:由於它回傳的是假 IP,某些應用程式會把假 IP 快取下來,導致後續連線失敗。比如一個應用程式先解析網域得到假 IP,然後 v2ray 退出,應用程式再用假 IP 連線就會失敗。因此,在切換設定或關閉 v2ray 時,最好重新啟動一下相關應用程式,清除其 DNS 快取。

如果你只是輕度使用代理,不追求「無洩漏」,可以不用 FakeDNS。它更適合對隱私有要求、或者經常遇到 DNS 污染問題的使用者。

多訂閱管理

多訂閱管理是 v2rayN 的一項基礎卻容易被低估的能力。一個 v2rayN 實例可以設定多個訂閱分組,每個分組獨立更新、獨立啟用、獨立命名。這為「多機場」和「自建 + 機場」混合使用提供了極大的便利。

最常見的情境是「主力機場 + 備用機場」。主力機場的訂閱負責日常使用,備用機場只在主力節點全部失效時切換。如果只用一個訂閱,主力機場出問題時只能乾等;設定多個訂閱分組後,備用機場的節點始終在列表裡,切換只是點一下的事。

另一種情境是「自建節點 + 付費機場」。自建節點穩定但數量少,付費機場節點多但品質參差不齊。把兩者放進不同分組,路由規則裡可以讓自建節點優先,機場節點作為備援。這樣即使自建節點暫時不可用,也能自動切到機場節點。

在訂閱分組設定裡,可以給每個分組設定「啟用」狀態。未啟用的分組不會自動更新,但已經拉取到的節點仍然保留在伺服器列表中。如果某段時間不想用某個分組,但也不想刪除,可以暫時關閉其更新開關。

訂閱更新失敗是常見問題。排查順序如下:第一,確認網路能造訪訂閱連結。有些機場的訂閱網域被電信業者屏蔽,需要先走代理才能拉取訂閱。第二,確認訂閱連結是否過期。很多機場的訂閱連結是限時的,過期後需要重新產生。第三,確認是否需要自訂 User-Agent。部分機場對訂閱請求的 User-Agent 有要求,v2rayN 支援在訂閱分組設定裡為每個訂閱單獨指定 User-Agent。第四,確認訂閱格式是否相容。有些訂閱是 Clash 格式,v2rayN 內建了轉換器,能在拉取時自動轉換;但如果轉換失敗,需要檢查訂閱內容是否完整。

訂閱去重也是多訂閱管理的一個實用點。多個訂閱之間經常出現重複節點,v2rayN 可以根據節點 ID 或位址去重。在訂閱分組設定中勾選「去重」相關選項後,重複的節點只會保留一個,避免伺服器列表被刷成一大片。

如果訂閱連結裡的節點太多,可以結合「伺服器過濾」功能,按協定、地區、延遲篩選,把不常用的節點隱藏起來。這樣既保留了多訂閱的靈活性,又不會讓列表變得難以管理。

多訂閱管理與路由規則結合,還能實現更高級的用法:比如把「工作分組」的節點作為預設代理,把「家庭分組」的節點作為備用,然後在路由規則裡按網域或 IP 指定不同的出站。這種設定適合對網路環境有清晰規劃的使用者。

自訂出站

出站(outbound)是 v2ray 用戶端發起連線的目標。v2rayN 預設內建兩個出站:一個是「代理」,指向目前選中的節點;另一個是「直連」,即 freedom 協定,不經過任何代理。這兩個出站已經涵蓋了絕大多數使用情境。

但在某些進階情境下,需要自訂出站。比如,你希望某個應用程式走 Shadowsocks 出口,另一個應用程式走 SOCKS 出口,或者你想把一個特定協定(如 HTTP)的流量轉發到另一個代理。這些都可以透過編輯 config.json 的 outbounds 陣列來實現。

下面是一個新增 Shadowsocks 出站的範例:

{
  "outbounds": [
    {
      "tag": "proxy",
      "protocol": "shadowsocks",
      "settings": {
        "servers": [
          {
            "address": "1.2.3.4",
            "port": 8388,
            "method": "aes-256-gcm",
            "password": "your-password"
          }
        ]
      }
    },
    {
      "tag": "direct",
      "protocol": "freedom"
    }
  ]
}

這段設定定義了兩個出站:proxy 使用 Shadowsocks 協定,連線到一個位址為 1.2.3.4、連接埠 8388 的伺服器;direct 使用 freedom 協定,表示直連。注意 tag 欄位非常重要,路由規則裡的 outboundTag 就是引用這個標籤。如果把 tag 改成了別的名字,路由規則也要同步修改。

自訂出站與路由規則的配合是核心玩法。比如,你可以在路由規則裡寫一條規則:

{
  "type": "field",
  "domain": ["example.com"],
  "outboundTag": "proxy"
}

這樣,造訪 example.com 的流量就會走 proxy 出站。如果你有多個自訂出站,比如一個 Shadowsocks 出站和一個 HTTP 出站,就可以按網域把流量分到不同的出口,實現「多線路」效果。

在 v2rayN 中,手動編輯 config.json 是唯一能新增自訂出站的方式。編輯前建議先關閉 v2rayN,備份原設定檔,再編輯。編輯完成後重新開啟,如果設定有語法錯誤,v2rayN 會提示載入失敗,此時用備份還原即可。注意,v2rayN 的 GUI 在儲存其他設定時可能會覆蓋 config.json,所以如果手動編輯了設定,最好把 v2rayN 的「自動儲存」相關選項關掉,或者編輯後立即重新啟動,避免 GUI 覆蓋。

關於 VMess 與 VLESS 的協定差異,以及如何選擇適合自己節點的協定,可以參考本站部落格文章《VMess 和 VLESS 有什麼區別:一分鐘看懂兩種協定的適用情境》。

進階調校與故障排除

設定完成後,連線不穩定或無法上網是常見問題。這一章把常見的故障情境和調校方向集中整理,方便按圖索驥。

連線不穩定的排查步驟

第一,檢查節點延遲。在伺服器列表中選擇節點,右鍵「測試伺服器真連線延遲」。如果延遲很高或逾時,先換一個節點試試。第二,檢查本機連接埠衝突。v2rayN 預設使用 10808 和 10809 作為本機 SOCKS/HTTP 連接埠,如果被其他程式佔用,連線會失敗。可以用指令 netstat -ano | findstr 10808 查看佔用程序,然後在「設定—參數設定」裡修改本機連接埠。更詳細的步驟可參考部落格《10808 連接埠被佔用怎麼辦:定位衝突程序與修改 v2rayN 本機連接埠》。第三,檢查系統代理設定。如果系統代理指向的連接埠與 v2rayN 實際監聽的連接埠不一致,瀏覽器會連不上。第四,檢查路由規則。如果路由規則把所有流量都導去了直連,代理自然不生效。

啟動當機與閃退

v2rayN 啟動即退,通常與執行時期缺失或安全軟體攔截有關。Windows 上先確認 .NET 執行時期是否安裝完整;如果安裝過但仍當機,檢查安全軟體(如 Windows Defender、第三方防毒)是否把 v2rayN 或 v2ray 核心檔案當作威脅隔離了。把 v2rayN 安裝目錄加入白名單,或者重新解壓縮到一個非系統碟路徑。更詳細的排查步驟可參考部落格《v2rayN 打不開怎麼辦:啟動當機與閃退的執行時期、權限排查步驟》。

已連線卻無法上網

這是最令人困惑的問題:用戶端顯示已連線,但網頁打不開。按以下順序逐項排查:第一,先確認節點是否真的可用——測試延遲並嘗試造訪一個不需要代理的中國大陸網站,如果能造訪,說明網路基本通。第二,檢查系統時間。代理協定對時間同步敏感,時間偏差超過 90 秒會導致連線被拒絕。第三,檢查 DNS。如果 DNS 設定不當,網域解析會失敗,表現為「能 ping 通 IP 但打不開網域」。第四,檢查系統代理設定。有些應用程式會強制使用系統代理,如果系統代理指向了錯誤的連接埠,就會斷網。第五,檢查路由規則。如果規則裡把造訪的網域導去了直連,而直連網路本身造訪不了該網域,也會出現「連上了但打不開」。完整的排查清單可參考部落格《V2Ray 已連線卻無法上網?按這份清單逐項排查節點、DNS 與系統代理》。

效能調校方向

如果連線穩定但速度不理想,可以嘗試以下調校:啟用 Mux(多路復用),Mux 把多個 TCP 連線復用到一條連線上,能減少交握次數,降低延遲,但會增加一點 CPU 佔用。對於行動網路或高延遲線路,Mux 通常有幫助。傳輸層協定的選擇也很重要:WebSocket 相容性好但開銷略大,gRPC 在長連線情境下表現更好。這些都可以在 v2rayN 的節點設定裡調整。

日誌排查

v2rayN 的日誌視窗(「查看日誌」)記錄了連線過程中的錯誤資訊。如果連線失敗,日誌裡通常會有明確的錯誤原因,比如「connection refused」「timeout」「certificate verify failed」等。學會讀日誌能大幅縮短排查時間。日誌等級可以在「設定—參數設定」裡調整,調成「偵錯」能看到更詳細的資訊,排查完成後記得調回「資訊」或「警告」,避免日誌檔案過大。

以上調校與排查方法適用於 v2rayN 桌面端和 v2rayNG 安卓端。安卓端遇到問題時,優先檢查訂閱是否更新、節點是否可用,以及是否被系統省電策略限制。

如果對基礎操作還不熟悉,建議先回到快速上手教學,把訂閱匯入和節點選擇流程走一遍,再回來閱讀本頁的各章節。本頁的每一章都是獨立主題,可以按需查閱。