V2Ray 設定檔參考大全
從 JSON 結構總覽到 inbounds 入站、outbounds 出站、routing 路由規則、dns 設定、policy 策略逐段拆解,配合真實可用的設定範例,幫助你系統理解 v2rayN 與 v2rayNG 底層設定機制。
JSON 結構總覽:設定檔是怎麼組織的
V2Ray 的核心設定檔採用 JSON 格式,這是一種結構清晰、易於機器解析的文字格式。無論是 v2rayN 還是 v2rayNG,底層都依賴 V2Ray 核心解析這份設定。理解 JSON 結構,是排查問題和自訂行為的基礎。設定檔通常命名為 config.json,存放在用戶端的設定目錄中。
V2Ray 設定檔的頂層欄位共有六個:log 日誌設定、inbounds 入站設定、outbounds 出站設定、routing 路由設定、dns 網域名稱解析設定、policy 策略設定。其中 inbounds 和 outbounds 是必填欄位,其餘均為選填。此外還有一個 api 欄位用於遠端控制,較不常用。
頂層欄位一覽
下表彙總了 V2Ray 設定檔的所有頂層欄位及其作用。理解這些欄位之間的關係,是讀懂設定的第一步。
| 欄位名稱 | 是否必填 | 作用 |
|---|---|---|
log |
否 | 控制日誌輸出層級、日誌檔案路徑 |
inbounds |
是 | 定義本機或遠端的入站連線入口 |
outbounds |
是 | 定義流量出站通道,即代理伺服器或直接連線 |
routing |
否 | 定義流量的分流規則,決定流量走哪個出站 |
dns |
否 | 定義網域名稱解析伺服器和解析策略 |
policy |
否 | 定義連線逾時、連線數限制等行為策略 |
設定檔載入機制
核心啟動時讀取 config.json,按順序解析各欄位。如果某個欄位缺失,核心會使用預設值。例如,缺少 dns 欄位時,核心會使用系統預設的 DNS 解析方式;缺少 routing 欄位時,所有流量都走第一個出站。在 v2rayN 中,每次切換節點或修改設定,程式都會在背景重新產生一份新的 config.json 並重新啟動核心。
因此,使用者手動編輯設定檔後,如果介面設定被修改,手動修改的內容會被覆蓋。v2rayN 提供了「開啟設定目錄」功能,允許使用者直接編輯設定檔,但編輯前需要先停止核心。在 v2rayN 的「設定」→「參數設定」中可以找到「設定目錄」相關入口。
JSON 語法注意事項
JSON 標準本身不支援註解,但 V2Ray 核心在解析時會忽略 // 和 /* */ 註解。這使得設定檔可以包含註解以便於閱讀。然而,在 v2rayN 自動產生的設定中,註解會被移除。如果手動編輯設定,建議保留註解但不要依賴註解作為功能邏輯的一部分。
一個常見的錯誤是漏掉逗號或引號不匹配。JSON 嚴格要求物件和陣列內部使用逗號分隔元素,最後一個元素後不能有逗號。在手動編輯設定時,建議使用支援 JSON 語法高亮的編輯器(如 VS Code),這樣可以快速發現語法問題。
除了語法,欄位的取值型別也容易出錯。例如 port 必須是數字而不是字串,udp 必須是布林值而不是字串。如果型別寫錯,核心雖然能解析 JSON,但會在執行時報錯。因此,手動編輯設定時,除了檢查語法,還要核對每個欄位的型別是否符合核心要求。
另外,V2Ray 核心在解析設定時對未知欄位是寬容的,會忽略不認識的欄位。這意味著即使設定裡多寫了某個欄位,核心也不會報錯,但該欄位不會生效。如果你發現某個設定沒有起作用,可以先檢查欄位名稱是否拼寫正確,再確認該欄位是否被目前核心版本支援。
inbounds 入站設定:流量入口怎麼開
入站(inbounds)是 V2Ray 核心對外提供服務的入口。v2rayN 預設建立兩個入站:一個 SOCKS 入站和一個 HTTP 入站,分別用於支援不同類型的用戶端連線。在「參數設定」中,使用者可以修改這兩個入站的監聽連接埠。入站設定的核心欄位包括:port 監聽連接埠、listen 監聽位址、protocol 入站協定、settings 協定設定。
常見的入站協定有 socks、http、vmess、trojan 等。對於本機代理場景,socks 和 http 是最常用的。v2rayN 預設使用 SOCKS 入站作為主入口,HTTP 入站作為相容入口,兩者同時監聽本機回環位址。
{
"inbounds": [
{
"port": 10808,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"udp": true,
"auth": "noauth"
}
},
{
"port": 10809,
"listen": "127.0.0.1",
"protocol": "http",
"settings": {
"timeout": 300
}
}
]
}
SOCKS 入站詳解
SOCKS 入站的 settings 中,udp 欄位控制是否支援 UDP 轉發。開啟 UDP 後,核心會透過 SOCKS 協定轉發 UDP 流量,這對於某些基於 UDP 的應用(如遊戲、視訊通話)是必要的。auth 欄位控制認證方式,noauth 表示無需認證,適合本機代理;如果需要防止區域網路內其他裝置未經授權使用代理,可以設定為 password 並設定使用者名稱和密碼。
HTTP 入站詳解
HTTP 入站的 settings 中可以設定 timeout 欄位,表示連線逾時時間(秒)。HTTP 入站通常用於相容不支援 SOCKS 協定的應用程式。在 v2rayN 中,兩個入站預設都監聽 127.0.0.1,即僅允許本機連線。
多入站設定與區域網路共用
在設定檔中,inbounds 是一個陣列,支援同時設定多個入站。每個入站擁有獨立的連接埠和協定。v2rayN 的「參數設定」中提供了「允許來自區域網路的連線」選項,開啟後,入站的 listen 位址會從 127.0.0.1 改為 0.0.0.0,允許區域網路內的其他裝置連線。這項功能在需要給手機、電視等裝置共用代理時非常有用。
連接埠衝突排查
如果設定的連接埠已被其他程式佔用,核心啟動會失敗。v2rayN 會提示「連接埠被占用」錯誤。此時需要修改入站連接埠,或關閉佔用連接埠的程式。在 Windows 上,可以使用 netstat -ano | findstr 10808 指令查看連接埠佔用情況,然後透過工作管理員結束對應處理程序。修改連接埠時,需要同時更新系統中其他軟體(如瀏覽器外掛)的代理設定。
除了連接埠被佔用,還有一種情況是連接埠被系統保留。Windows 的「排除連接埠範圍」功能會保留一段連接埠,如果設定的連接埠落在保留範圍內,核心同樣無法監聽。此時可以換一個連接埠,或在管理員命令列中執行 netsh int ipv4 show excludedportrange protocol=tcp 查看被保留的連接埠範圍。
在 v2rayN 中修改入站連接埠後,建議同時檢查系統代理設定是否同步更新。如果系統代理仍指向舊連接埠,瀏覽器將無法正常上網。v2rayN 在切換節點或修改設定時通常會同步更新系統代理,但手動修改設定檔後需要自行確認。
outbounds 出站設定:流量出口怎麼走
出站(outbounds)是 V2Ray 核心向外發起連線的通道。v2rayN 在切換節點時,會根據所選節點協定產生對應的出站設定。出站協定決定了與遠端伺服器通訊的方式。常見的出站協定包括:vmess、vless、trojan、shadowsocks、freedom(直接連線)、blackhole(丟棄)。其中 vmess 和 vless 是 V2Ray 生態特有的協定,trojan 和 shadowsocks 是通用代理協定。
出站設定包含:protocol 協定類型、settings 協定設定、streamSettings 傳輸設定、mux 多路復用。其中 streamSettings 定義了傳輸方式(tcp、ws、grpc 等)和安全設定(tls、reality)。當使用 WebSocket 時,需要指定 path 和 headers;當使用 TLS 時,需要指定 serverName 和 allowInsecure。
vmess 出站設定
{
"outbounds": [
{
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "example.com",
"port": 443,
"users": [
{
"id": "your-uuid-here",
"alterId": 0,
"security": "auto"
}
]
}
]
}
}
]
}
vmess 出站的 settings 中包含 vnext 陣列,每個 vnext 物件代表一個伺服器。address 是伺服器位址,port 是伺服器連接埠,users 是使用者清單。每個使用者有 id(UUID)、alterId(附加 ID)、security(加密方式)。alterId 在新版本核心中建議設為 0,以提高安全性。
vless 出站設定
vless 出站與 vmess 類似,但 vless 協定本身不提供加密,需要依賴 TLS 或 REALITY 傳輸安全。vless 出站的 settings 中,users 陣列的每個使用者包含 id、encryption(加密方式,vless 中固定為 none)、flow(流控,如 xtls-rprx-vision)。流控欄位是 vless 協定特有的進階功能,可以最佳化 TCP 傳輸效能。
streamSettings 傳輸設定
streamSettings 是出站設定中最重要的部分之一。傳輸方式(network)決定了資料如何封裝。常見的傳輸方式有 tcp、ws(WebSocket)、grpc、http/2 等。當使用 ws 時,需要指定 path 和 headers;當使用 grpc 時,需要指定 serviceName。安全設定(security)可以是 none、tls 或 reality。使用 TLS 時,serverName 必須與伺服器的憑證網域名稱匹配。
mux 多路復用
mux 欄位控制是否開啟多路復用。開啟後,一個 TCP 連線可以承載多個並行請求,減少連線建立的開銷,對弱網環境下的連線穩定性有一定幫助。mux 的 enabled 欄位預設關閉,在 v2rayN 中可以透過「參數設定」→「多路復用」開啟。多路復用適合大量短連線的場景,但並非所有伺服器都支援,開啟前建議先測試。
多路復用的核心參數是 concurrency,表示單一連線上最多同時承載的請求數。預設值為 8,可以根據需要調整。如果某個伺服器對並行連線數有限制,過大的 concurrency 反而可能導致連線被伺服器端拒絕。因此,開啟多路復用後,建議先觀察一段時間,確認連線穩定後再調整參數。
需要注意的是,多路復用與某些協定(如 REALITY)的相容性需要測試。部分伺服器在開啟多路復用後會出現連線異常,此時可以嘗試關閉多路復用,或降低 concurrency 的值。
routing 路由規則:流量怎麼分流
路由規則(routing)是 V2Ray 的核心功能之一,它決定流量如何分流。routing 欄位包含 rules 規則清單和 strategy 策略。每條規則定義了匹配條件和對應的出站。規則匹配條件包括:domain 網域名稱匹配、ip IP 位址匹配、port 連接埠匹配、network 網路類型匹配、inboundTag 入站標籤匹配。
規則匹配的順序是從上到下逐條進行,第一條匹配成功的規則生效。如果所有規則都不匹配,流量走第一個出站(通常是代理)。因此,在設定路由規則時,需要注意規則的排列順序。v2rayN 預設產生的路由規則將「繞過區域網路」和「繞過中國大陸」放在前面,確保這些流量先被直接連線。
常見規則範例
{
"routing": {
"rules": [
{
"type": "field",
"ip": [
"10.0.0.0/8",
"192.168.0.0/16",
"172.16.0.0/12"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"geosite:cn"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"geosite:geolocation-!cn"
],
"outboundTag": "proxy"
}
]
}
}
上面的範例中,第一條規則匹配私有 IP 位址段,走直接連線;第二條規則匹配中國大陸網域名稱,走直接連線;第三條規則匹配非中國大陸網域名稱,走代理。這裡使用了 geosite:cn 和 geosite:geolocation-!cn 這樣的預定義網域名稱集,它們由 V2Ray 核心內建,無需手動維護。
網域名稱匹配方式
在 v2rayN 中,路由規則可以在「設定」→「路由設定」中設定。v2rayN 提供了「網域名稱策略」選項,可以控制網域名稱匹配方式:as-is 表示直接使用網域名稱進行匹配;ip-if-non-match 表示如果網域名稱不匹配任何規則,則解析網域名稱並按 IP 匹配;ip-on-demand 表示按需解析網域名稱以匹配 IP 規則。其中 ip-on-demand 適用於需要按 IP 規則分流的場景,但會增加 DNS 解析次數。
分流策略
路由規則的分流策略通常包括三種:直接連線(direct)、代理(proxy)和拒絕(block)。直接連線表示流量不經過代理伺服器,直接連接目標位址;代理表示流量經過代理伺服器轉發;拒絕表示直接丟棄流量,常用於遮蔽廣告和惡意網站。在 v2rayN 中,direct 和 block 是內建的出站標籤,不需要額外設定。
路由規則與入站標籤
當設定了多個入站時,可以透過 inboundTag 欄位將特定入站的流量分流到不同出站。例如,可以讓來自區域網路共用入站的流量走直接連線,而來自本機 SOCKS 入站的流量走代理。這種設定在需要精細控制不同來源流量時非常有用。
使用 inboundTag 前,需要先給入站設定 tag 欄位。例如,在 inbounds 中給 SOCKS 入站設定 "tag": "socks-in",然後在路由規則中寫 "inboundTag": ["socks-in"]。這樣,只有來自該入站的流量才會匹配這條規則。
在 v2rayN 中,入站標籤通常由程式自動產生,使用者一般不需要手動設定。但如果你需要精細控制不同來源的流量走向,了解這一機制會很有幫助。
dns 設定:網域名稱解析怎麼處理
DNS 設定(dns)決定 V2Ray 如何解析網域名稱。dns 欄位包含 servers 清單。每個伺服器可以指定 address(位址)、port(連接埠)、domains(網域名稱清單)。V2Ray 支援多種 DNS 協定,包括 UDP、TCP、DoH(DNS over HTTPS)和 DoT(DNS over TLS)。
在 v2rayN 中,DNS 設定位於「參數設定」→「DNS」中。v2rayN 預設會產生一組 DNS 伺服器設定,通常包含一個公共 DNS(如 1.1.1.1)和一個本機 DNS(如 223.5.5.5)。V2Ray 會按清單順序依次嘗試 DNS 伺服器,如果第一個伺服器無回應,則使用下一個。
{
"dns": {
"servers": [
{
"address": "1.1.1.1",
"port": 53,
"domains": [
"geosite:geolocation-!cn"
]
},
{
"address": "223.5.5.5",
"port": 53,
"domains": [
"geosite:cn"
]
},
{
"address": "localhost",
"port": 53
}
]
}
}
上面的範例中,1.1.1.1 負責解析非中國大陸網域名稱,223.5.5.5 負責解析中國大陸網域名稱,最後一個 localhost 作為兜底。這種分流策略可以加快國內訪問速度,同時確保國外網域名稱解析不被污染。
FakeDNS 原理與設定
FakeDNS 是 V2Ray 的一種特殊 DNS 模式。開啟後,當收到 DNS 查詢時,V2Ray 會立即返回一個保留網段的虛假 IP(如 198.18.0.0/15),而不會等待真實 DNS 解析。當流量經過路由規則時,V2Ray 會根據目標網域名稱重新匹配路由,並在出站時還原真實網域名稱。FakeDNS 可以顯著減少 DNS 解析延遲,特別適合與 TUN 模式配合使用。
在 v2rayN 中,FakeDNS 模式需要在「參數設定」→「DNS」中開啟。開啟後,v2rayN 會在產生的設定中自動加入 fake-dns 伺服器。需要注意的是,FakeDNS 與某些路由規則組合可能會產生衝突,例如按 IP 匹配的規則可能無法正確匹配虛假 IP。因此,使用 FakeDNS 時建議優先使用網域名稱規則,避免使用 IP 規則。
DNS 與路由規則的配合
DNS 設定與路由規則是緊密配合的。在路由規則中,如果使用 geosite:cn 這樣的網域名稱集,V2Ray 需要先解析網域名稱才能進行匹配。此時,DNS 設定的 domains 欄位可以幫助 V2Ray 決定哪些網域名稱使用哪個 DNS 伺服器。合理的 DNS 分流策略可以減少 DNS 污染的影響,提升訪問速度。
當使用 FakeDNS 時,DNS 解析被推遲到出站階段,路由規則中的網域名稱匹配仍然有效,但 IP 匹配可能失效。因此,如果你同時使用 FakeDNS 和路由規則,建議把網域名稱規則放在最前面,並盡量避免依賴 IP 規則。這樣既能享受 FakeDNS 的低延遲,又能保證分流準確。
另外,DNS 設定中的 queryStrategy 欄位可以控制查詢的 IP 類型(IPv4、IPv6 或兩者)。在 IPv6 環境不穩定的情況下,可以將其設定為 UseIPv4,避免因 IPv6 解析失敗導致的連線問題。
policy 策略:連線行為怎麼控制
policy 策略欄位用於控制連線行為。它包含 levels 等級設定和 system 系統設定。system 中設定全域的連線限制,包括 connectionTimeout 連線逾時、handshakeTimeout 握手逾時、maxConnections 最大連線數等。
在 v2rayN 中,可以透過「設定」→「參數設定」→「策略」來調整這些值。預設情況下,V2Ray 使用系統預設值。對於大多數場景,預設值已經足夠。但在高並行或特殊網路環境下,可能需要調整逾時時間。
system 系統設定詳解
{
"policy": {
"system": {
"connectionTimeout": 300,
"handshakeTimeout": 60,
"maxConnections": 0,
"minPort": 0,
"maxPort": 0
},
"levels": {
"0": {
"connIdle": 300,
"uplinkOnly": 0,
"downlinkOnly": 0,
"statsUserUplink": false,
"statsUserDownlink": false
}
}
}
}
連線逾時(connectionTimeout)控制建立 TCP 連線的最長等待時間。如果連線逾時,核心會返回錯誤並關閉連線。握手逾時(handshakeTimeout)控制 TLS 握手的最長等待時間。在弱網環境下,適當增加逾時時間可以提升連線穩定性。maxConnections 為 0 表示不限制連線數。
levels 等級設定
levels 等級設定允許按使用者等級設定不同的策略。每個使用者可以有 level 欄位,策略中可以按 level 設定連線限制和速度限制。connIdle 表示閒置連線的逾時時間(秒),超過該時間沒有資料互動的連線會被關閉。uplinkOnly 和 downlinkOnly 表示連線允許的上行/下行持續時間,0 表示不限制。
在 v2rayN 中,使用者等級通常不直接暴露,但了解這一機制有助於理解進階設定。例如,如果某個節點經常出現連線被伺服器端斷開的情況,可能是伺服器端設定了 connIdle 策略,而用戶端沒有及時傳送心跳封包。
策略與連線的穩定性
合理的 policy 設定可以提升連線的穩定性。如果網路環境較差,可以適當增加 connectionTimeout 的值。如果經常出現連線被伺服器端提前關閉的情況,可以調大 connIdle 的值。但需要注意的是,過大的逾時值會佔用更多的系統資源,因此需要根據實際網路環境權衡。
在 v2rayN 中,policy 策略通常不需要使用者手動調整,預設值已經能涵蓋大多數場景。但如果你在弱網環境下使用,或者連線經常被伺服器端斷開,可以嘗試在「參數設定」→「策略」中適當調大逾時時間。調整後建議重新啟動核心,讓新策略生效。
另外,levels 中的 statsUserUplink 和 statsUserDownlink 欄位控制是否統計使用者的上行/下行流量。開啟後,核心會記錄每個使用者的流量資料,配合 api 欄位可以查詢。但統計功能會帶來一定的效能開銷,如果不需要流量統計,建議保持關閉。
綜合設定範例:一份真實可用的完整設定
下面給出一個完整的設定範例,包含一個 SOCKS 入站、一個 HTTP 入站、一個 vmess 出站、一個 freedom 直接連線出站,以及路由規則和 DNS 設定。這份設定可以直接用於 V2Ray 核心,也可以作為 v2rayN 產生設定的參考。
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"port": 10808,
"listen": "127.0.0.1",
"protocol": "socks",
"settings": {
"udp": true,
"auth": "noauth"
},
"tag": "socks-in"
},
{
"port": 10809,
"listen": "127.0.0.1",
"protocol": "http",
"settings": {
"timeout": 300
},
"tag": "http-in"
}
],
"outbounds": [
{
"tag": "proxy",
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "example.com",
"port": 443,
"users": [
{
"id": "your-uuid-here",
"alterId": 0,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"serverName": "example.com"
}
}
},
{
"tag": "direct",
"protocol": "freedom",
"settings": {}
},
{
"tag": "block",
"protocol": "blackhole",
"settings": {}
}
],
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"ip": [
"10.0.0.0/8",
"192.168.0.0/16",
"172.16.0.0/12"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"geosite:cn"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"geosite:geolocation-!cn"
],
"outboundTag": "proxy"
}
]
},
"dns": {
"servers": [
{
"address": "1.1.1.1",
"port": 53,
"domains": [
"geosite:geolocation-!cn"
]
},
{
"address": "223.5.5.5",
"port": 53,
"domains": [
"geosite:cn"
]
},
{
"address": "localhost",
"port": 53
}
]
}
}
設定要點逐段講解
這份設定的第一部分定義了日誌層級為 warning,即只輸出警告和錯誤資訊,避免頻繁的日誌洗版。兩個入站分別監聽 10808 和 10809 連接埠,均綁定在本機回環位址上,確保只有本機可以訪問。
出站部分包含三個標籤:proxy 使用 vmess 協定連接遠端伺服器,設定中使用了 TLS 加密作為傳輸安全;direct 使用 freedom 協定實現直接連線;block 使用 blackhole 協定實現流量丟棄。路由規則將私有 IP 段和中國大陸網域名稱指向直接連線,將非中國大陸網域名稱指向代理。
DNS 設定中,1.1.1.1 負責解析非中國大陸網域名稱,223.5.5.5 負責解析中國大陸網域名稱,localhost 作為兜底。這樣的設定可以有效減少 DNS 污染的影響,同時保證國內訪問速度。
圖形用戶端與設定檔:v2rayN / v2rayNG 怎麼管理設定
v2rayN 和 v2rayNG 都使用 V2Ray 核心,但管理設定檔的方式不同。v2rayN 在 Windows 上執行,設定檔儲存在使用者目錄中,每次切換節點都會重新產生 config.json。v2rayNG 在 Android 上執行,設定儲存在應用程式私有目錄,支援多設定檔管理。
v2rayN 的設定管理
v2rayN 的介面操作會產生設定檔的各個欄位。使用者在「伺服器」面板中新增節點,v2rayN 會在切換節點時產生對應的 outbounds 設定。使用者可以在「設定」→「路由設定」中調整路由規則,v2rayN 會把這些設定寫入 routing 欄位。在「參數設定」中,使用者可以修改入站連接埠、開啟 FakeDNS、調整多路復用等,這些操作都會反映到產生的設定檔中。
v2rayN 提供了「開啟設定目錄」功能,允許使用者直接編輯設定檔。但需要注意的是,如果使用者手動修改了設定檔,然後又在介面上執行了任何操作,v2rayN 會重新產生設定檔並覆蓋手動修改的內容。因此,手動編輯設定前,建議先停止核心,編輯完成後再重新啟動。
v2rayNG 的設定管理
v2rayNG 的設定儲存在 Android 應用程式私有目錄中,使用者可以透過「設定」→「匯入設定」從檔案或訂閱匯入。v2rayNG 支援多設定檔,每個設定檔可以包含不同的節點和設定。切換設定檔時,v2rayNG 會重新載入對應的 config.json。
在 v2rayNG 中,使用者可以透過「設定」→「DNS」和「設定」→「路由」來調整 DNS 和路由設定。v2rayNG 同樣支援 FakeDNS 模式,開啟後會在產生的設定中加入 fake-dns 伺服器。對於進階使用者,v2rayNG 提供了「編輯設定檔」功能,允許直接修改 JSON 設定。
訂閱與設定檔
兩個用戶端都支援訂閱,訂閱連結會自動更新節點清單。訂閱連結本質上是一個遠端 JSON 清單,v2rayN 和 v2rayNG 會定期拉取並解析。訂閱更新後,用戶端會重新產生設定。需要注意的是,訂閱連結本身不包含路由規則和 DNS 設定,這些設定仍然需要使用者在用戶端中手動設定。
對於 v2flyNG 使用者,其設定管理與 v2rayNG 基本一致,只是底層使用 v2fly 核心而非 Xray 核心。三款用戶端在設定檔的欄位結構上保持一致,因此同一份 config.json 理論上可以互換使用,但需要注意核心版本差異可能導致的欄位相容性問題。
訂閱連結通常包含加密資訊,請勿隨意分享給他人。如果訂閱連結外洩,節點可能被他人使用,導致流量被消耗。建議定期更換訂閱連結,並在用戶端中開啟「訂閱更新提醒」,及時掌握節點變化。同時,訂閱更新會覆蓋節點清單,如果你手動新增過節點,建議先備份。
常見設定錯誤與排查方法
設定錯誤是 V2Ray 使用中最常見的問題之一。了解常見的錯誤類型和排查方法,可以大幅減少排障時間。以下列出幾類高頻錯誤及其對應的解決方法。
連接埠被占用
當設定的入站連接埠已被其他程式佔用時,核心啟動失敗。v2rayN 會提示「連接埠被占用」錯誤。解決方法:修改入站連接埠,或關閉佔用連接埠的程式。在 Windows 上,可以使用 netstat -ano | findstr 10808 指令查看連接埠佔用情況,然後透過工作管理員結束對應處理程序。
如果修改了連接埠,還需要同步更新系統代理設定。在 Windows 中,系統代理設定位於「設定」→「網路和 Internet」→「代理」。在 macOS 中,系統代理設定位於「系統偏好設定」→「網路」→「進階」→「代理」。確保 SOCKS 連接埠和 HTTP 連接埠與設定一致。
JSON 語法錯誤
如果設定檔中有語法錯誤,核心會啟動失敗。常見的語法錯誤包括:缺少逗號、引號不匹配、括號不對稱。在 v2rayN 中,可以透過「設定」→「開啟設定目錄」找到 config.json,使用文字編輯器檢查語法。推薦使用支援 JSON 語法高亮的編輯器,這樣可以快速定位錯誤位置。
如果設定檔很長,可以先將設定內容貼到線上 JSON 校驗工具中檢查。但需要注意,不要在設定中保留真實伺服器資訊後再上傳到第三方工具。
憑證設定錯誤
使用 TLS 或 REALITY 時,憑證設定錯誤會導致連線失敗。常見的錯誤包括:serverName 與憑證不匹配、憑證過期、allowInsecure 設定不當。在 v2rayN 中,可以透過「節點設定」→「傳輸安全」檢查憑證設定。如果使用自簽憑證,需要將 allowInsecure 設定為 true,但這會降低安全性。
路由規則誤設
路由規則設定不當會導致流量走錯通道。例如,將中國大陸網域名稱錯誤地匹配到代理,會導致訪問緩慢。排查方法:查看日誌中的流量走向,檢查路由規則的排列順序。在 v2rayN 中,可以透過「設定」→「路由設定」查看目前生效的路由規則。如果發現規則順序不合理,可以調整規則的排列。
另一個常見問題是 FakeDNS 與 IP 規則的衝突。開啟 FakeDNS 後,V2Ray 返回的是虛假 IP,此時如果路由規則中包含按 IP 匹配的規則,可能無法正確匹配。解決方法是優先使用網域名稱規則,或將 FakeDNS 關閉。
核心啟動失敗的其他原因
除了上述原因,核心啟動失敗還可能是因為設定檔路徑錯誤、權限不足、系統缺少必要的執行庫等。在 v2rayN 中,可以透過「設定」→「核心設定」檢查核心路徑是否正確。如果使用攜帶版,需要確保核心檔案與設定檔的路徑關係正確。
如果日誌顯示找不到核心檔案,說明 v2rayN 的設定目錄中缺少 xray.exe 或 v2ray.exe。此時需要重新下載用戶端並確保核心檔案完整。另外,防毒軟體可能誤刪核心檔案,如果核心反覆「消失」,請把 v2rayN 目錄加入防毒軟體白名單。
還有一種情況:核心檔案存在,但版本與用戶端不匹配。例如 v2rayN 更新後,舊核心可能不相容新設定格式。此時在「核心設定」中點擊「更新核心」或重新下載對應版本的核心即可。