Clash 混合埠與區域網路共享代理設定:手機電視共用電腦節點

開啟 mixed-port 與 allow-lan 後,同一區域網路內的手機、平板、電視該怎麼填代理位址與埠號,並附安全提醒。

電腦上跑著一個 Clash,手機、平板、電視也想走同一批節點,不必每台裝置都各裝一個用戶端。打開混合埠與區域網路共享,其他裝置把代理指向電腦的區域網路 IP 即可。還沒裝用戶端的,先到下載頁安裝 Clash Verge Rev,依照教學匯入訂閱,再回來開共享。

混合埠:一個埠,兩種通訊協定

Clash 設定檔裡有三個與埠號相關的欄位,先分清楚再動手:

  • port:HTTP 代理埠,只接受 HTTP/HTTPS 代理請求;
  • socks-port:SOCKS5 代理埠,支援 TCP 與 UDP 轉發;
  • mixed-port:混合埠,在同一個埠上自動判斷進來的是 HTTP 還是 SOCKS 請求,對端不需要理會通訊協定差異。

Clash Verge Rev 預設只開一個混合埠 7897(早期版本與部分舊設定是 7890,實際請以「設定 → 連接埠設定」裡顯示的為準),系統代理、瀏覽器、命令列工具全部都指向它。區域網路共享同樣圍繞這個埠展開:手機、電視上只需要記一個 IP 加一個埠號。

什麼時候會用到獨立的 portsocks-port?個別老軟體只認其中一種通訊協定、且對自動判斷相容性不佳時,可以在設定裡額外宣告,三個欄位允許同時存在,互不衝突。日常共享用混合埠就夠了。各欄位完整說明請見設定參考頁。

第一步:開啟 allow-lan,放行防火牆

預設狀態下 Clash 只監聽 127.0.0.1,也就是只有本機能連上。欄位 allow-lan 控制是否監聽所有網卡,設為 true 之後,同一區域網路裡的裝置才能連進來。

Clash Verge Rev 裡不需要手動改檔案:打開「設定」頁,找到「區域網路連線」開關並開啟,它對應的就是 allow-lan;同一頁的「連接埠設定」可以查看或修改混合埠。等效的 YAML 寫法如下:

mixed-port: 7897
allow-lan: true
bind-address: "*"

bind-address 保持 *(全部網卡)即可,填具體 IP 反而容易在換網路環境後失效。

Windows 首次開啟共享時,系統通常會跳出安全性中心警示,詢問是否允許 verge-mihomo 在網路上通訊,勾選「私人網路」後允許即可。如果當時按了取消,到「控制台 → Windows Defender 防火牆 → 允許應用程式通過防火牆」裡找到對應項目,重新勾選私人網路。macOS 開了防火牆的話,在「系統設定 → 網路 → 防火牆 → 選項」裡放行核心程式即可。

第二步:查出電腦的區域網路 IP

其他裝置要填的「伺服器 / 主機名稱」,是電腦在區域網路裡的位址,不是 127.0.0.1。查詢方式如下:

  • Windows:在命令提示字元執行 ipconfig,查看目前網卡下的「IPv4 位址」,常見格式如 192.168.1.20;
  • macOS:「系統設定 → Wi-Fi → 詳細資訊」裡可直接看到,或在終端機執行 ipconfig getifaddr en0;
  • Linux:在終端機執行 hostname -I,取第一個位址。

這個位址由路由器的 DHCP 分配,重新啟動路由器或租約到期後可能會變動。長期共享建議在路由器後台做 IP/MAC 綁定(常叫「位址保留」),把電腦的區域網路 IP 固定下來,免得每隔幾天就要在手機上重新填一次。

第三步:手機、平板、電視分別怎麼設定

前提:裝置與電腦連的是同一台路由器、同一個網段。以下以電腦 IP 192.168.1.20、埠號 7897 為例。

iPhone / iPad

「設定 → 無線區域網路」,點選目前 Wi-Fi 右側的詳細資訊按鈕,往下滑到最底部的「設定代理伺服器」,選「手動」:伺服器填 192.168.1.20,埠號填 7897,儲存。沒開驗證的話,「驗證」開關保持關閉即可。

Android 手機 / 平板

「設定 → Wi-Fi」,長按或點擊目前已連線的網路,選「修改網路」,展開「進階選項」,代理選「手動」:代理伺服器主機名稱填 192.168.1.20,代理伺服器連接埠填 7897,儲存。各品牌介面文字略有差異,關鍵字都是「代理伺服器 → 手動」。

Android TV / 電視盒子

原生 Android TV:「設定 → 網路和網際網路 → 目前的 Wi-Fi → 代理伺服器設定」,選手動後填 IP 與埠號。要注意很多電視的客製化系統(部分中國大陸品牌電視、舊款三星與 LG)根本沒有代理伺服器入口,這條路走不通,只能把代理下沉到路由器層,不在本文討論範圍內。

另一台電腦

macOS 在「系統設定 → Wi-Fi → 詳細資訊 → 代理伺服器」裡勾選「網頁代理伺服器 (HTTP)」與「安全網頁代理伺服器 (HTTPS)」,填同一組位址;Windows 在「設定 → 網路和網際網路 → 代理伺服器 → 手動設定代理伺服器」裡填寫。也可以只在瀏覽器擴充功能裡指過去,影響範圍更小。

電腦關機,手機就斷網

手機填了手動代理伺服器後,幾乎所有流量都會交給電腦轉發。電腦休眠、關機或退出 Clash,手機會立刻連不上網路。不用共享時,記得把手機的代理伺服器改回「關閉 / 無」。

驗證連線與排查順序

在另一台裝置上驗證,最直接的方式是使用命令列:

curl -x http://192.168.1.20:7897 -I https://www.google.com

能收到回應標頭,就代表「裝置 → 電腦 → 節點」整條鏈路都通了。手機上沒有終端機的話,直接打開瀏覽器連上一個網站也能判斷。

連不上時依下面的順序排查,命中率由高到低:

  1. 兩端是否在同一個網段:手機 IP 也應該是 192.168.1.x;連到「訪客網路」基本上都會被隔離;
  2. 路由器是否開了 AP 隔離 / 用戶端隔離,開啟後區域網路裝置彼此看不到,關掉後再試一次;
  3. 電腦的防火牆是否真的有放行,可以先暫時關閉防火牆測一次來定位問題;
  4. allow-lan 是否生效:看核心日誌裡的監聽行,位址要是 [::]0.0.0.0 才對;如果還是 127.0.0.1,代表開關沒開或設定沒生效;
  5. 埠號是否被本機其他程式佔用,佔用的話就換一個,例如 7899,手機端要同步修改。
mihomo 啟動日誌
level=info msg="Mixed(http+socks) proxy listening at: [::]:7897"

另外兩點常見疑惑:一是 HTTP 代理不會轉發 UDP,語音通話、部分遊戲走系統代理時可能會異常,這是通訊協定本身的行為,不是設定錯誤;二是手機上同時開著其他 VPN 類應用程式時會和手動代理伺服器衝突,先關掉再測試。

安全提醒:共享開關別長期開著

只在可信任的網路裡共享

開啟 allow-lan 等於把代理服務暴露給目前網段的所有裝置。家用網路沒問題;但在咖啡廳、機場、公司訪客網路這類公共網路裡,務必保持關閉。

共享出去的代理與電腦擁有完全相同的網路視角:透過它能存取你電腦能存取的所有內部網路位址,包括路由器管理後台。所以即使是在家裡,也只把 IP 和埠號告訴信任的人。

需要長期共享時,建議給代理加一層帳號密碼,Clash 原生就支援:

authentication:
  - "homeuser:換成足夠長的密碼"

設定完成後,iOS 在「設定代理伺服器」裡開啟「驗證」並填入使用者名稱密碼;Android 內建的代理伺服器入口不支援填帳號,需要改用支援驗證的代理用戶端,或乾脆只在要用時才臨時開啟共享。

最後一個習慣:共享結束就回到「設定」頁關掉「區域網路連線」。這個開關只是回到預設的僅本機監聽,不會影響電腦自己繼續使用代理。

下載 Clash Verge Rev

免費、開源,支援 Windows / macOS / Linux,內建 mihomo 核心。安裝完成後依教學匯入訂閱,再回來本文開啟區域網路共享。

下載用戶端