電腦上跑著一個 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 加一個埠號。
什麼時候會用到獨立的 port 或 socks-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
能收到回應標頭,就代表「裝置 → 電腦 → 節點」整條鏈路都通了。手機上沒有終端機的話,直接打開瀏覽器連上一個網站也能判斷。
連不上時依下面的順序排查,命中率由高到低:
- 兩端是否在同一個網段:手機 IP 也應該是
192.168.1.x;連到「訪客網路」基本上都會被隔離; - 路由器是否開了 AP 隔離 / 用戶端隔離,開啟後區域網路裝置彼此看不到,關掉後再試一次;
- 電腦的防火牆是否真的有放行,可以先暫時關閉防火牆測一次來定位問題;
allow-lan是否生效:看核心日誌裡的監聽行,位址要是[::]或0.0.0.0才對;如果還是127.0.0.1,代表開關沒開或設定沒生效;- 埠號是否被本機其他程式佔用,佔用的話就換一個,例如
7899,手機端要同步修改。
level=info msg="Mixed(http+socks) proxy listening at: [::]:7897"
另外兩點常見疑惑:一是 HTTP 代理不會轉發 UDP,語音通話、部分遊戲走系統代理時可能會異常,這是通訊協定本身的行為,不是設定錯誤;二是手機上同時開著其他 VPN 類應用程式時會和手動代理伺服器衝突,先關掉再測試。
安全提醒:共享開關別長期開著
只在可信任的網路裡共享
開啟 allow-lan 等於把代理服務暴露給目前網段的所有裝置。家用網路沒問題;但在咖啡廳、機場、公司訪客網路這類公共網路裡,務必保持關閉。
共享出去的代理與電腦擁有完全相同的網路視角:透過它能存取你電腦能存取的所有內部網路位址,包括路由器管理後台。所以即使是在家裡,也只把 IP 和埠號告訴信任的人。
需要長期共享時,建議給代理加一層帳號密碼,Clash 原生就支援:
authentication:
- "homeuser:換成足夠長的密碼"
設定完成後,iOS 在「設定代理伺服器」裡開啟「驗證」並填入使用者名稱密碼;Android 內建的代理伺服器入口不支援填帳號,需要改用支援驗證的代理用戶端,或乾脆只在要用時才臨時開啟共享。
最後一個習慣:共享結束就回到「設定」頁關掉「區域網路連線」。這個開關只是回到預設的僅本機監聽,不會影響電腦自己繼續使用代理。