V2Ray 已連線卻無法上網?macOS 系統代理、路由與 DNS 排查清單

依序檢查系統代理、本機連接埠、路由模式、DNS 解析與瀏覽器擴充功能,找出已連線卻無法上網的原因。

本文重點

適用於 v2rayN 已啟動、節點已選取,但 macOS 瀏覽器仍無法開啟網頁的情況。先確認請求是否送進本機代理,再檢查出站連線與網域解析;使用同一個網址比對,每次只調整一項設定。看完即可分辨系統代理未接管、連接埠未監聽、路由分流錯誤、DNS 異常及瀏覽器獨立設定這五類問題。

一、確認「已連線」指的是哪一層

能開啟用戶端主視窗、節點顯示已選取、延遲測試有結果,都不代表瀏覽器已透過該節點瀏覽網站。V2Ray、Xray 是代理核心;v2rayN 負責管理設定並啟動核心。系統代理則讓支援這項設定的應用程式將請求送到本機入口。任何一個環節中斷,都可能出現「用戶端正常,網頁逾時」的情況。

二、檢查 macOS 系統代理與目前使用的網路服務

系統代理設定會依網路服務分別儲存。Wi-Fi 下設定正確,不代表切換到乙太網路後仍然有效;VPN 或網路管理軟體也可能改寫設定。先在 v2rayN 的「系統代理」中選擇「自動設定系統代理」,再到 macOS 設定確認實際狀態。不同版本的選單位置可能有所變動,請以目前介面顯示的文字為準。

  1. 開啟網路設定

    前往 macOS「系統設定」→「網路」→目前使用的 Wi-Fi 或乙太網路服務→「詳細資訊」→「代理伺服器」。確認檢查的是目前正在連線的服務。

  2. 檢查代理入口位址

    手動代理通常會指向本機位址 127.0.0.1。HTTP、HTTPS 或 SOCKS 的連接埠必須對應用戶端實際監聽的入口,不要在這裡填入節點遠端伺服器的連接埠。

  3. 確認代理接管方式

    若使用自動代理設定,請確認設定網址與用戶端模式相符。若使用手動代理,請確認對應的開關已啟用。測試時不要同時保留來源不明的舊自動代理設定與手動設定。

  4. 重新送出請求

    儲存後重新開啟目標網頁。若仍沒有變化,請關閉並重新開啟瀏覽器,再於終端機執行 scutil --proxy,確認有效設定中的位址、連接埠與啟用狀態。

scutil --proxy 的輸出中,HTTPEnable、HTTPSEnable、SOCKSEnable 可用來確認手動代理是否啟用;自動設定則須一併查看 ProxyAutoConfigEnable 與設定網址。這個指令會顯示系統設定,但無法證明每個應用程式都會遵循該設定。部分終端機工具和瀏覽器會使用自己的代理設定。

三、確認本機連接埠正在監聽,再測試明確指定代理

先在 v2rayN 的「設定」→「參數設定」中找出本機監聽連接埠;不同版本的欄位名稱可能不同。以下以已確認支援 SOCKS 的 10808 連接埠為例,並非要求所有安裝都改用這個數值。若入口只支援 HTTP,請改用對應的 HTTP 代理測試方式。

10808
本機 SOCKS 連接埠範例,請以實際設定為準
443
下方 HTTPS 測試使用的目標服務連接埠
15 秒
單次指令的總逾時上限,並非測速結果
# 檢查範例連接埠是否有 TCP 監聽
lsof -nP -iTCP:10808 -sTCP:LISTEN

# 透過 SOCKS 入口連線,由代理端解析目標網域
curl --noproxy "" --proxy socks5h://127.0.0.1:10808 \
  --connect-timeout 5 --max-time 15 -I https://example.com/

lsof 有輸出時,還要確認該程序確實屬於目前使用的核心;其他程式占用相同連接埠也會有輸出。若沒有輸出,請檢查連接埠是否填錯、核心是否已結束,以及監聽位址是否符合預期。遇到問題時不要立刻開放區域網路監聽,瀏覽器連線到本機代理通常不需要這麼做。

測試網址使用保留的示例網域,僅供說明指令。排查時可換成已知可連線的 HTTPS 網址。若收到 HTTP 回應標頭,代表這次請求至少已完成代理連線與 HTTPS 交握;即使狀態碼是 403,也不同於連線逾時。單一網址測試成功,不代表所有網站或路由都正常。

判斷方式:指令成功,瀏覽器失敗

先保留目前節點與 DNS 設定,不要急著更換協定。明確指定代理的測試可正常使用時,優先檢查系統代理接管、瀏覽器獨立代理與擴充功能設定;若明確指定代理也失敗,再檢查出站連線與網域解析。

四、透過路由比對找出錯誤分流

路由會決定請求要直連、走代理或遭到阻擋。規則中的「直連」不等於「自動選擇可用路徑」;若目標網域被錯誤分到直連,而目前網路無法連線,請求仍會失敗。全域代理也不代表所有流量都已接管,只會影響進入核心的請求。

測試結果優先懷疑下一步
規則模式失敗,全域代理成功網域或 IP 被分配到直連,或出站連線遭到阻擋檢查命中的規則與出站標籤,修正後再切回規則模式
兩種模式都失敗本機入口、節點出站或 DNS使用明確指定代理的指令測試,並檢查同一時間的錯誤記錄
網頁正常,特定應用程式失敗應用程式未使用系統代理,或有獨立設定檢查該應用程式的代理設定,再評估是否需要 TUN
只有少數網域失敗網站限制、規則或特定解析結果再測試另一個網域,避免直接判定整個節點失效

在 v2rayN 的路由選擇區暫時切換至「全域」進行比對,測試結束後恢復原模式。若設定中的出站標籤使用 proxy、direct 或 block,請在存取記錄中確認對應標籤;自訂設定可能使用其他名稱,不要只憑標籤文字推測其行為。

五、分辨本機解析、代理端解析與瀏覽器 DNS

DNS 不只一層。macOS 解析器、瀏覽器安全 DNS、核心 DNS,以及代理伺服器端的解析都可能參與其中。修改系統 DNS 不一定會改變代理端的解析結果;啟用瀏覽器安全 DNS,也不代表節點伺服器位址一定能正確解析。

以下指令只會改變 SOCKS 請求中目標網域的解析位置:第一個指令由本機解析目標網域,第二個則將目標網域交由代理端處理。兩次測試應使用相同的節點、網址與連接埠,而且本機入口必須支援 SOCKS。

# 由本機解析目標網域
curl --noproxy "" --proxy socks5://127.0.0.1:10808 \
  --connect-timeout 5 --max-time 15 -I https://example.com/

# 由代理端解析目標網域
curl --noproxy "" --proxy socks5h://127.0.0.1:10808 \
  --connect-timeout 5 --max-time 15 -I https://example.com/

# 查看 macOS 目前的解析器設定
scutil --dns

變更解析設定後,可執行 sudo dscacheutil -flushcache 和 sudo killall -HUP mDNSResponder 清除 macOS 解析快取,再重新啟動瀏覽器。執行指令需要管理員授權;若網路設定本身有誤,清除快取也無法修復。請勿關閉憑證驗證來規避 DNS 或 TLS 問題。

六、依原始錯誤訊息排查,別只看「逾時」

保留故障發生時的完整錯誤訊息,至少分辨本機連線失敗、網域解析失敗與憑證錯誤。以下列出 curl 常見的錯誤開頭;實際輸出也會附上連接埠、主機名稱或憑證說明,請搭配後續細節判斷。

錯誤:curl: (7) Failed to connect

原因與處理方式:無法連線至指定位址;若後續訊息指出 127.0.0.1,先確認本機連接埠與核心監聽狀態;若指向遠端位址,則繼續檢查實際請求路徑與出站連線。

錯誤:curl: (6) Could not resolve host

原因與處理方式:目標主機名稱在本機解析階段失敗;檢查網址拼字,使用 scutil --dns 確認解析器,再比對 socks5h 的測試結果。

錯誤:curl: (28) Operation timed out

原因與處理方式:請求超過設定的時間,但錯誤本身無法判斷問題發生在哪一層;加上 -v 再試一次,並依記錄中最後完成的連線階段定位,避免只延長逾時時間來掩蓋問題。

錯誤:curl: (60) SSL certificate problem

原因與處理方式:憑證驗證失敗;先檢查 macOS「系統設定」→「一般」→「日期與時間」,再確認目標網域、憑證鏈與網路攔截情況。不要將略過驗證的參數當成長期解決方案。

分享記錄前,請隱藏訂閱連結、帳號憑證、節點位址與存取記錄中的敏感內容。只需保留錯誤類型、發生時間、核心名稱及必要的版本資訊。VMess、VLESS、Trojan 等節點協定參數由伺服器設定決定,任意修改協定、TLS 或 SNI 可能造成新的交握問題。

七、排除瀏覽器衝突並確認恢復狀態

明確指定代理的測試成功後,再處理瀏覽器。先使用新建的暫時瀏覽器設定檔測試,不必急著清除所有瀏覽資料。無痕視窗不一定會停用所有擴充功能,尤其是已獲准在無痕模式執行的擴充功能;企業管理政策也可能會鎖定代理設定。

終端機可以連線,瀏覽器還是無法開啟網頁?

先停用代理切換擴充功能,確認瀏覽器使用系統代理,再用暫時設定檔開啟同一個網址。Firefox 可在「設定」→「一般」→「網路設定」中確認是否使用系統代理設定,避免仍指向舊連接埠。

換個節點就正常了,還需要修改 DNS 嗎?

先不要修改。固定使用同一個網址,分別對兩個節點進行明確指定代理測試。若只有一個節點失敗,優先檢查該節點是否可用、協定參數與出站記錄,而不是修改整台電腦的解析設定。

退出 v2rayN 後反而完全無法上網?

前往 macOS 目前網路服務的「詳細資訊」→「代理伺服器」,確認是否仍指向已停止監聽的本機連接埠。清除殘留代理後測試直接連線;下次退出前,請先在用戶端選擇「清除系統代理」。

Android 裝置也顯示連線成功,卻無法上網?

v2rayNG 使用 Xray 核心,v2flyNG 使用 v2fly 核心;先檢查系統 VPN 授權、是否有其他 VPN 正在使用,以及應用程式分流是否排除了瀏覽器。不要將 macOS 的本機連接埠設定直接套用到 Android 裝置。

  1. 恢復日常使用的規則模式,分別測試一個可直連的網站和一個需要代理的網站。
  2. 關閉暫時啟用的偵錯記錄,並還原排查前記下的瀏覽器 DNS 與擴充功能設定;若某項設定就是故障原因,則保留修正後的設定。
  3. 重新啟動用戶端與瀏覽器,確認系統代理能正常接管;再退出用戶端,確認系統代理能正常清除。
  4. 記下有效的本機連接埠、路由模式與修正項目。下次問題再現時,從最近的變更開始檢查,不要重新修改所有參數。
下載 V2Ray 用戶端