要將執行 v2rayN 的 Mac 作為區域網路代理入口,必須同時符合三個條件:代理連接埠監聽區域網路介面、防火牆允許連入,以及其他裝置填入正確的主機位址與連接埠。本文以 192.168.1.20、HTTP 連接埠 10809 和 SOCKS5 連接埠 10808 為例,說明設定與疑難排解;這些數值僅供示範,實際設定前務必確認用戶端的設定。
區域網路共享與系統代理有何不同
在 Mac 開啟系統代理,只會讓遵循系統代理設定的本機 App 將要求交給 v2rayN。其他裝置不會因此自動取得代理。區域網路共享則是在 Mac 上開放可供同一網路裝置連線的 HTTP 或 SOCKS 入站,讓其他裝置主動連上這個入口。
連線路徑為「其他裝置 → Mac 本機入站 → v2rayN 目前的路由與出站 → 目標網站」。遠端節點位址、UUID 等驗證資訊會留在 Mac 的用戶端設定中;連線裝置通常只需要知道 Mac 的區域網路位址、入站協定與連接埠。使用前仍應確認訂閱服務允許這種使用方式,以及相應的並行連線數。
- Mac 必須保持運作:結束 v2rayN、核心停止或電腦進入睡眠後,共享入口便無法使用。
- Wi-Fi 名稱相同不代表裝置互通:訪客網路、無線用戶端隔離或不同 VLAN,都可能讓裝置無法互相連線。
- 代理不會接管所有流量:只有使用該代理的 App 要求會經過 Mac;不遵循代理設定的 App 仍可能直接連線。
- 共享會沿用路由設定:經由同一入站的要求通常會依照 Mac 目前的規則分流,不一定都會傳送至遠端代理節點。
監聽位址、區域網路 IP 與連接埠的對應方式
最常見的錯誤,是在其他裝置上填入 127.0.0.1。迴圈位址永遠指向填入該位址的裝置,而不是執行 v2rayN 的 Mac。另一個常見錯誤是把 0.0.0.0 當作代理伺服器位址:它用於伺服器端監聽,不能作為用戶端連線目標。
| 設定值 | 說明 | 其他裝置的填寫方式 |
|---|---|---|
127.0.0.1 | 僅監聽本機迴圈介面 | 其他裝置無法透過此監聽入口連線 |
0.0.0.0 | 監聽所有 IPv4 本機介面 | 填入 Mac 實際使用的區域網路 IPv4 位址 |
192.168.1.20 | 本文範例中的 Mac 區域網路位址 | 請替換為目前 Mac 的實際位址 |
10809 | 本文範例的 HTTP 入站連接埠 | 確認提供 HTTP 代理後才使用 |
10808 | 本文範例的 SOCKS5 入站連接埠 | 確認提供 SOCKS5 後才使用 |
不同版本、核心與既有設定可能使用不同連接埠,也可能提供混合入站。請勿只憑連接埠數字猜測協定。先查看參數設定或產生的設定檔中的入站定義,再決定填入 HTTP 或 SOCKS5。若設定中出現 IPv6 萬用監聽位址 ::,也不能據此認定 IPv4 一定可以連線,仍須實際測試。
結論:先確認協定,再填入位址
先確認有可用的 HTTP 入站,再讓第二台裝置連線至 Mac 的實際區域網路 IP。第一次測試只確認這條連線路徑,暫時不要同時變更連接埠、路由與 DNS。
在 v2rayN 開啟允許區域網路連線
先在 Mac 本機確認目前節點可正常使用,再開放區域網路入口。以下以常見的桌面介面為例;不同版本的頁面位置與開關名稱可能略有差異,但要找的是本機入站的監聽範圍,而非遠端伺服器位址或遠端服務連接埠。
-
確認本機連線正常
啟動 v2rayN,選取可用伺服器,並透過本機代理存取目標網站。若本機連線已失敗,請先處理節點、訂閱或核心啟動問題,不要直接排查區域網路。
-
開啟區域網路連線
前往「設定」→「參數設定」,在核心基本設定或入站相關頁面中,找到「允許來自區域網路的連線」等類似選項並啟用。若目前介面沒有此選項,請先確認該版本的入站設定說明,不要變更名稱相近的遠端參數。
-
記下入站連接埠
在相同設定區域記下 HTTP、SOCKS 或混合入站的實際連接埠。本文後續以 HTTP 10809 為例;若只提供混合連接埠,請確認該連接埠接受 HTTP 代理要求。
-
儲存並重新載入
儲存設定,讓用戶端重新載入核心設定;若介面提示需要重新啟動核心,請依照提示操作。接著查看記錄,確認是否有連接埠遭占用、設定載入失敗或監聽失敗等訊息。
-
查詢主機位址
開啟 macOS「系統設定」→「網路」→目前連線的網路服務→「詳細資訊」→「TCP/IP」,記下 IPv4 位址。如果 Mac 同時連接有線與無線網路,請選擇與連線裝置位於可互通網路的那個位址。
可在 Mac 的「終端機」執行下列唯讀指令,檢查範例連接埠是否有 TCP 監聽。使用其他連接埠時,請替換指令中的數字;若權限限制導致結果不完整,請一併參考核心記錄判斷。
lsof -nP -iTCP:10809 -sTCP:LISTEN
如果結果只有 127.0.0.1:10809,表示目前仍僅供本機使用;若顯示 *:10809,還應根據輸出中的 IPv4、IPv6 類型確認監聽範圍,並從另一台裝置進行測試。可查看用戶端產生的 config.json,確認 inbounds 中的 listen、port 與 protocol;但不要將直接編輯產生的檔案當作長期設定方式,下次儲存或切換節點時可能會被覆寫。
檢查 macOS 防火牆與路由器隔離設定
成功監聽不代表區域網路要求一定能抵達程序。macOS 防火牆、其他網路過濾工具與路由器隔離設定,都可能阻擋連線。排查時請維持防火牆開啟,只允許必要的程式通訊;不要把長期關閉防火牆當作共享步驟。
- 前往 macOS「系統設定」→「網路」→「防火牆」→「選項」。不同系統版本的選單名稱可能略有差異。
- 確認是否已啟用「阻止所有傳入連線」。若必須保留此政策,一般 App 的入站共享可能無法依照本文方式運作;受管理的裝置應先遵循管理員政策。
- 在 App 清單中檢查 v2rayN 的入站權限,並視需要設為允許傳入連線。若系統顯示網路入站要求,請確認要求的程式與目前使用的用戶端相符。
- 若仍遭到阻擋,請根據
lsof的程序資訊確認實際監聽的程序。某些封裝方式會由核心程序負責監聽,請確認該程序的權限,不要任意允許不明程式通訊。 - 檢查路由器中的「訪客網路」、「AP 隔離」或「用戶端隔離」設定。建議讓兩台裝置連上可信任且允許互通的主要網路,不要為此設定公網連接埠轉送。
其他裝置該使用 HTTP 還是 SOCKS5?
先依照 App 支援的代理類型選擇入口。HTTP 代理也能透過 CONNECT 傳輸常見的 HTTPS 要求;名稱中的 HTTP 不代表只能瀏覽一般 HTTP 網頁。SOCKS5 則需要 App 或系統明確支援,不能將 SOCKS 連接埠直接填入 HTTP 代理欄位。
HTTP 手動代理
建議以主機 192.168.1.20、連接埠 10809 為例,分別填入伺服器與連接埠欄位。首次測試只要確認瀏覽器能否透過此入口載入網頁。
適用情境:Android Wi-Fi、Windows 系統代理,以及提供 HTTP 代理設定的 App。
SOCKS5 App 代理
在 App 中選擇 SOCKS5,填入主機 192.168.1.20 與範例連接埠 10808。網域名稱由本機或代理端解析,請另外確認 App 的遠端 DNS 選項。
適用情境:明確支援 SOCKS5 的桌面 App、命令列工具與 Linux 工作環境。
- Android:常見路徑為「設定」→「網路和網際網路」→「網際網路」→目前 Wi-Fi 的設定→編輯網路→「進階選項」→「代理伺服器」→「手動」。各廠牌的選單可能不同,填入代理主機名稱與連接埠後儲存。並非所有 App 都會遵循此設定。
- Windows:前往「設定」→「網路和網際網路」→「Proxy」→「手動設定 Proxy」→「設定」,啟用代理伺服器並填入位址與連接埠。使用獨立代理設定的 App 仍須另外設定。
- 另一台 Mac:前往「系統設定」→「網路」→目前的網路服務→「詳細資訊」→「代理伺服器」。使用 HTTP 入站時,視需要將「網頁代理(HTTP)」及「安全網頁代理(HTTPS)」設定為相同的主機與連接埠。
- Linux:桌面網路代理面板的名稱會因桌面環境而異。首次測試可先使用下列指令,不必立即變更整個桌面的代理設定。
伺服器欄位通常只需填入 192.168.1.20,不要加上 http://;連接埠則填入獨立的連接埠欄位。只有明確要求「代理 URL」的工具才需要使用完整 URL。若入站設定了驗證,還須填入該入站要求的使用者名稱與密碼,而非遠端節點的 UUID。
用指令區分連接埠無法連線與代理失敗
請在另一台裝置執行以下測試,而非只在提供共享的 Mac 上執行。macOS 與常見 Linux 環境可使用 curl;Windows 可呼叫 curl.exe,避免終端環境中同名的指令別名影響判斷。測試位址使用範例網域,僅供觀察要求過程,不代表已驗證所有目標網站。
# HTTP 入站:替換為 Mac 的實際位址與連接埠
curl --noproxy "" -I -v --connect-timeout 5 --max-time 15 \
--proxy http://192.168.1.20:10809 https://example.com/
# SOCKS5 入站:socks5h 會將網域名稱交由代理端處理
curl --noproxy "" -I -v --connect-timeout 5 --max-time 15 \
--proxy socks5h://192.168.1.20:10808 https://example.com/
| 觀察到的結果 | 優先檢查項目 | 下一步處理方式 |
|---|---|---|
| 連線遭拒 | 連接埠填錯、核心未執行,或僅監聽迴圈位址 | 返回 Mac 檢查監聽狀態與啟動記錄;也請留意明確拒絕連線的過濾規則 |
| 建立連線逾時 | 位址無法連線、防火牆丟棄封包或無線網路隔離 | 確認目前 IP 與網路服務,並檢查入站權限及訪客網路設定 |
| 回應 407 | HTTP 入站要求代理驗證 | 填入入站驗證資訊,不要以節點驗證欄位代替 |
| 連線後要求失敗 | 協定不符、出站無法使用,或 DNS/路由問題 | 依照要求時間查看核心記錄,確認是否使用預期的出站 |
| 收到目標網站的回應 | 該次代理要求的連線路徑已建立 | 接著測試日常使用的 App 及其獨立代理設定 |
上述 5 秒連線逾時與 15 秒總逾時只是疑難排解參數,不是速度或延遲測量結果。成功載入一個網頁,也不代表 UDP、遊戲或即時通話已經透過代理傳輸。HTTP 代理通常無法承載任意 UDP;SOCKS5 的 UDP 轉送也取決於連線 App、入站與後續鏈路的支援,不能只憑開啟共享就保證可用。
區域網路共享常見問題
Mac 可以上網,為什麼其他裝置連線逾時?
先用 lsof 檢查連接埠是否只監聽 127.0.0.1,再確認其他裝置填入的是 Mac 目前的區域網路 IP。接著檢查防火牆與訪客網路隔離;不要一開始就重設訂閱或更換遠端節點。
手機能開啟網頁,為什麼某個 App 沒有使用代理?
Android 的 Wi-Fi 手動代理不會強制所有 App 使用代理。先確認該 App 是否提供獨立的 HTTP 或 SOCKS5 設定;若需要在裝置端單獨接管流量,可依實際需求設定 v2rayNG 或 v2flyNG,不必反覆修改 Mac 端的連接埠。
昨天還能用,今天為什麼無法連上同一個位址?
前往 Mac 的網路詳細資訊重新確認 IPv4 位址。DHCP 租約到期或切換網路都可能讓位址改變;若要長期使用,可在自有路由器設定 DHCP 位址保留,避免自行填入可能與其他裝置衝突的靜態位址。
停止共享後,哪些設定需要關閉?
先在連線裝置取消手動代理,再關閉 v2rayN 的區域網路連線選項並重新載入核心。使用監聽指令確認連接埠已改回迴圈位址或停止監聽;否則裝置下次連上其他網路時,可能仍會嘗試連線至舊位址。
要穩定共享,關鍵在於控制好位址、監聽方式與存取範圍。首次設定完成後,記下入站協定、連接埠與路由模式即可,不必將整份產生的設定檔散發給每台裝置。更新用戶端或更換核心後,再用第二台裝置測試一次連線,確認共享設定仍然有效。