適用於 v2rayN 已啟動、節點已選取,但 macOS 瀏覽器仍無法開啟網頁的情況。先確認請求是否送進本機代理,再檢查出站連線與網域解析;使用同一個網址比對,每次只調整一項設定。看完即可分辨系統代理未接管、連接埠未監聽、路由分流錯誤、DNS 異常及瀏覽器獨立設定這五類問題。
一、確認「已連線」指的是哪一層
能開啟用戶端主視窗、節點顯示已選取、延遲測試有結果,都不代表瀏覽器已透過該節點瀏覽網站。V2Ray、Xray 是代理核心;v2rayN 負責管理設定並啟動核心。系統代理則讓支援這項設定的應用程式將請求送到本機入口。任何一個環節中斷,都可能出現「用戶端正常,網頁逾時」的情況。
- 先檢查一般網路:停止代理接管後,嘗試開啟平常可直接連線的網站。若仍無法連線,先排除 Wi-Fi、認證入口網站或網路本身的問題。
- 再檢查核心:開啟 v2rayN 的記錄區,確認啟動後沒有連接埠遭占用、設定解析失敗等錯誤。只看到主畫面,不代表核心已成功啟動。
- 最後檢查請求:重新整理目標網頁,查看存取記錄是否出現對應網域。若未啟用存取記錄,「沒有記錄」不能直接證明請求未進入核心。
二、檢查 macOS 系統代理與目前使用的網路服務
系統代理設定會依網路服務分別儲存。Wi-Fi 下設定正確,不代表切換到乙太網路後仍然有效;VPN 或網路管理軟體也可能改寫設定。先在 v2rayN 的「系統代理」中選擇「自動設定系統代理」,再到 macOS 設定確認實際狀態。不同版本的選單位置可能有所變動,請以目前介面顯示的文字為準。
-
開啟網路設定
前往 macOS「系統設定」→「網路」→目前使用的 Wi-Fi 或乙太網路服務→「詳細資訊」→「代理伺服器」。確認檢查的是目前正在連線的服務。
-
檢查代理入口位址
手動代理通常會指向本機位址
127.0.0.1。HTTP、HTTPS 或 SOCKS 的連接埠必須對應用戶端實際監聽的入口,不要在這裡填入節點遠端伺服器的連接埠。 -
確認代理接管方式
若使用自動代理設定,請確認設定網址與用戶端模式相符。若使用手動代理,請確認對應的開關已啟用。測試時不要同時保留來源不明的舊自動代理設定與手動設定。
-
重新送出請求
儲存後重新開啟目標網頁。若仍沒有變化,請關閉並重新開啟瀏覽器,再於終端機執行
scutil --proxy,確認有效設定中的位址、連接埠與啟用狀態。
scutil --proxy 的輸出中,HTTPEnable、HTTPSEnable、SOCKSEnable 可用來確認手動代理是否啟用;自動設定則須一併查看 ProxyAutoConfigEnable 與設定網址。這個指令會顯示系統設定,但無法證明每個應用程式都會遵循該設定。部分終端機工具和瀏覽器會使用自己的代理設定。
三、確認本機連接埠正在監聽,再測試明確指定代理
先在 v2rayN 的「設定」→「參數設定」中找出本機監聽連接埠;不同版本的欄位名稱可能不同。以下以已確認支援 SOCKS 的 10808 連接埠為例,並非要求所有安裝都改用這個數值。若入口只支援 HTTP,請改用對應的 HTTP 代理測試方式。
# 檢查範例連接埠是否有 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
- 本機解析失敗、代理端成功:優先檢查系統解析器、網路提供的 DNS 與本機快取;這只是排查線索,不能僅憑一次測試就判定遭到污染。
- 本機解析成功、代理端失敗:檢查核心與伺服器端的解析路徑、遠端 DNS 是否可連線,以及相關 DNS 請求被分配到哪個出站。
- 兩者都失敗:先確認錯誤發生在連線本機代理、連線節點,還是目標 TLS 交握階段,不要把所有逾時都歸咎於 DNS。
- 只有瀏覽器失敗:記下安全 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 裝置。
- 恢復日常使用的規則模式,分別測試一個可直連的網站和一個需要代理的網站。
- 關閉暫時啟用的偵錯記錄,並還原排查前記下的瀏覽器 DNS 與擴充功能設定;若某項設定就是故障原因,則保留修正後的設定。
- 重新啟動用戶端與瀏覽器,確認系統代理能正常接管;再退出用戶端,確認系統代理能正常清除。
- 記下有效的本機連接埠、路由模式與修正項目。下次問題再現時,從最近的變更開始檢查,不要重新修改所有參數。