Clash 混合連接埠與區域網路代理:分享設定給手機及其他裝置
說明 mixed-port、允許區域網路存取、監聽位址、防火牆放行,以及分享失敗時的檢查重點。
分享代理的運作路徑
Clash 或 Mihomo 在電腦上啟動後,會建立一個或多個本機代理監聽連接埠。一般情況下,這些連接埠只供本機應用程式使用;開啟區域網路存取後,同一網路中的手機、平板、電視盒子或另一台電腦,也能將請求送到這個監聽連接埠,再由執行 Clash 的主機完成規則比對與節點轉送。
完整路徑可以概括為:用戶端裝置發起請求,家用路由器或區域網路交換設備將資料交給 Clash 主機,Clash 依目前模式與規則決定使用代理節點或直接連線,回應接著沿原路徑返回。遠端裝置不需要讀取 Clash 設定檔,也不會直接連線到訂閱中的節點,只需知道主機的區域網路 IP、監聽連接埠與代理協定。
這種分享方式不等同於把電腦變成完整路由器。手動填寫 HTTP 代理時,只有遵循系統代理設定的應用程式會經過 Clash;忽略系統代理、直接建立連線,或自行使用 VPN 介面的應用程式,可能仍會直接連線。若需要接管裝置的全部流量,應使用旁路由、透明代理,或在裝置本機部署支援 TUN 的用戶端,而不是只依賴 Wi-Fi 代理欄位。
mixed-port 同時接收 HTTP 與 SOCKS5
mixed-port 是混合代理連接埠。它允許 HTTP 代理連線與 SOCKS5 代理連線進入同一個連接埠,減少分別維護 port 與 socks-port 的需要。常見連接埠號是 7890,但這只是慣用設定值,並非固定要求;只要未被其他程式佔用,也可以改用其他未使用的連接埠。
mixed-port: 7890
allow-lan: true
bind-address: "*"
mode: rule
log-level: info
這段設定表示:在 7890 連接埠接收 HTTP 與 SOCKS5 請求,允許區域網路裝置連線,並依規則模式處理流量。YAML 對縮排與字元格式較敏感,冒號後需要保留空格;星號建議放在引號中,以免被解析為 YAML 別名語法。
如果設定中同時保留 port、socks-port 與 mixed-port,應先確認用戶端介面最後寫入核心的值。不同連接埠可以並存,但手機填寫的連接埠必須與目前正在監聽的連接埠一致。圖形用戶端中的「混合連接埠」「允許區域網路連線」通常會對應到這些欄位,修改後可能還需要套用設定或重新啟動核心。
HTTP 與 SOCKS5 應該選哪一個
手機 Wi-Fi 設定頁提供的「代理」通常指 HTTP 代理,因此應填寫 Clash 主機的區域網路 IP 與 mixed-port。瀏覽器瀏覽 HTTPS 網站時,會透過 HTTP CONNECT 建立通道,仍可使用該連接埠。支援 SOCKS5 的應用程式則可將相同的位址與連接埠作為 SOCKS5 伺服器使用。
HTTP 代理較容易透過系統網路設定部署,但並非所有應用程式都會遵循。SOCKS5 能承載更多應用層連線方式,也支援由代理端解析網域名稱;不過系統設定頁通常沒有 SOCKS5 入口,需要由應用程式自行提供代理選項。若只是要驗證分享鏈路,先使用 HTTP 代理測試最直觀。
分享請求仍會進入規則系統
遠端裝置連線到混合連接埠後,請求不會自動進入全域代理。Clash 仍會依目前的規則模式、全域模式或直連模式處理流量。在規則模式下,網域名稱、目標 IP、無法看見程序時的網路特徵,以及設定中的規則順序,都會影響最終策略。若測試網站命中 DIRECT,即使分享設定正確,也可能看到出口位址沒有變化。
排查時可以暫時觀察連線清單或日誌中的規則命中結果,不要只憑頁面能否開啟來判斷代理是否生效。驗證結束後,應恢復日常使用的模式,避免長期使用全域模式掩蓋規則設定問題。
允許區域網路存取與監聽位址
allow-lan: true 控制其他裝置是否能存取代理連接埠。只設定混合連接埠但未允許區域網路存取時,核心可能只接受來自本機的連線,手機會出現連線逾時或立即遭拒。圖形用戶端中對應的選項常命名為「允許區域網路」「區域網路連線」或「Allow LAN」。
bind-address 決定要監聽哪些本機位址。"*" 表示由核心依其實作監聽可用位址,適合主機位址可能變動的家用網路。只需要 IPv4 分享時,也可以使用 0.0.0.0 監聽所有 IPv4 介面。若想縮小監聽範圍,可以填寫主機目前的區域網路 IPv4 位址,例如 192.168.1.20;但 DHCP 重新分配位址後,需要同步修改設定。
用戶端裝置不能填寫 127.0.0.1、localhost 或 0.0.0.0。在手機上,127.0.0.1 指向手機本身;0.0.0.0 是用於監聽的萬用位址,不是可連線的目標。手機的代理伺服器欄位應填寫執行 Clash 的電腦在目前區域網路中的實際位址。
尋找主機的區域網路 IP
- Windows 可執行
ipconfig,查看目前 Wi-Fi 或乙太網路介面卡的 IPv4 位址。 - macOS 可在網路設定中查看已連線介面的 IP,也可使用
ipconfig getifaddr en0;若介面不是en0,應依實際介面調整。 - Linux 可執行
ip addr,在目前連網介面下尋找區域網路位址。
常見家用網路位址會以 192.168.、10.,或 172.16. 至 172.31. 開頭。主機可能同時存在有線網卡、無線網卡、虛擬機網卡與 VPN 虛擬介面,應選擇與手機位於同一區域網路的實體介面位址。最簡單的判斷方式,是比較兩台裝置的閘道與網段。
防火牆放行與 Wi-Fi 用戶端隔離
核心已經監聽區域網路位址,不代表資料一定能抵達連接埠。Windows Defender 防火牆、macOS 防火牆、Linux 的 nftables、iptables 或 firewalld 都可能攔截入站連線。放行規則應針對實際使用的 TCP 連接埠,並盡量將來源限制在家用或辦公室區域網路網段。
Windows 首次啟動相關用戶端時,系統可能詢問允許在哪類網路中通訊。通常只需允許「私人網路」。如果目前 Wi-Fi 被識別為公用網路,即使應用程式已取得私人網路權限,連線仍可能遭到阻擋。可以先確認網路設定檔類型,再檢查應用程式規則或連接埠規則是否涵蓋目前的核心程序。
Linux 主機可以先確認監聽狀態,再處理防火牆。例如使用以下命令查看 7890 連接埠:
ss -lnt | grep 7890
若結果只顯示 127.0.0.1:7890,表示問題仍在 Clash 的監聽設定;若顯示 0.0.0.0:7890、主機區域網路位址或相應的 IPv6 監聽位址,則繼續檢查防火牆與路由器隔離設定。不要為了測試直接關閉所有防火牆,建立範圍明確的暫時入站規則更容易判斷原因,也方便測試後撤銷。
連在同一個 Wi-Fi 也可能無法互相存取
部分路由器會為訪客網路啟用 AP 隔離、用戶端隔離或無線終端隔離。此時手機與電腦雖然顯示連線到同一台路由器,卻無法直接建立區域網路連線。企業、飯店與公共熱點也常採用類似策略。可以先嘗試從另一台電腦存取代理連接埠,或檢查手機是否能連線到主機上的其他區域網路服務。
雙頻 Wi-Fi 本身通常不會阻斷通訊,但某些路由器會將訪客 SSID、物聯網 SSID 與主網路劃分到不同網段。若裝置位址不在同一網段,應確認路由器是否允許網段之間互相存取。僅開啟 allow-lan 無法繞過路由器的存取控制。
手機、平板與其他電腦的設定方式
iPhone 與 iPad
- 讓裝置連線到與 Clash 主機相同,且允許終端彼此存取的 Wi-Fi。
- 開啟目前 Wi-Fi 的詳細設定,進入 HTTP 代理,將設定方式改為手動。
- 伺服器填寫 Clash 主機的區域網路 IP,連接埠填寫
mixed-port的值。 - 若核心設定了代理驗證,再填寫相應的使用者名稱與密碼;未設定時保持驗證關閉。
- 儲存後開啟瀏覽器,造訪預期會命中代理規則的網站,並同步觀察 Clash 連線清單。
iOS 與 iPadOS 的手動 HTTP 代理會依 Wi-Fi 網路儲存。切換到行動數據、另一個 Wi-Fi,或關閉目前網路後,這項設定不會自動移轉。部分應用程式可能忽略系統 HTTP 代理,因此瀏覽器測試成功不代表所有應用程式都會採用相同路徑。
Android 裝置
- 進入目前 Wi-Fi 的修改網路或進階設定頁面。
- 將代理方式改為手動,代理主機名稱填寫電腦的區域網路 IP。
- 代理連接埠填寫混合連接埠,例如
7890。 - 儲存並重新連線 Wi-Fi,接著透過瀏覽器與 Clash 日誌驗證請求。
Android 廠商對設定頁面的命名各不相同,有些系統必須長按 Wi-Fi 名稱後才能看到代理選項。系統層級的 Wi-Fi HTTP 代理通常無法涵蓋所有應用程式,也不等同於 VPN 或 TUN。需要使用 SOCKS5 的應用程式,應在應用程式內填寫相同的主機位址與混合連接埠,並選擇 SOCKS5 協定。
另一台電腦
Windows、macOS 與 Linux 可以在系統網路代理中填寫 HTTP 代理,也可以只為瀏覽器、終端機或開發工具設定。使用 curl 驗證 HTTP 代理時,可執行:
curl -x http://192.168.1.20:7890 https://example.com
驗證 SOCKS5 並讓代理端處理網域名稱解析時,可使用:
curl --socks5-hostname 192.168.1.20:7890 https://example.com
範例中的 IP 必須替換為實際主機位址。若第一個命令成功,但系統中的應用程式失敗,應重點檢查應用程式是否讀取系統代理、是否設定代理繞過清單,以及是否自行建立其他網路通道。
存取控制、驗證與暴露界線
監聽所有介面會讓同一個可達網路中的其他裝置嘗試連線代理連接埠。在家庭可信任網路中,可以透過防火牆限制來源網段;在成員較多的辦公室網路、宿舍網路或公共熱點中,應進一步限制監聽位址,或使用核心支援的代理驗證功能。
Mihomo 等實作支援透過設定為 HTTP 與 SOCKS 入口設定使用者名稱和密碼,常見設定形式如下:
authentication:
- "lanuser:replace-with-a-strong-password"
驗證欄位的支援情況會隨核心與用戶端版本而異,修改前應確認目前用戶端實際使用的核心。使用者名稱與密碼會交給需要存取代理的裝置,適合作為區域網路存取控制的一環,但仍應搭配防火牆來源限制。不要將代理連接埠映射到路由器公網位址,也不要在雲端主機安全性群組中對網際網路開放該連接埠。
如果只在家中偶爾分享,可以在使用結束後關閉「允許區域網路」,或撤銷暫時的防火牆規則。長期分享時,應固定主機 IP、記錄連接埠用途,並避免與開發伺服器、資料庫或其他本機服務使用相同連接埠。
分享失敗時的檢查順序
排查應從監聽端逐層推進到用戶端。一次只修改一個變數,並記錄每一步的現象。直接反覆切換節點或重新安裝用戶端,通常無法定位區域網路連線問題。
第一步:確認核心執行狀態與連接埠佔用
先在主機本機使用 127.0.0.1 與混合連接埠測試代理。如果本機也無法連線,請檢查核心是否啟動、設定是否成功載入、連接埠是否被其他程式佔用,以及日誌中是否有 YAML 解析或監聽失敗訊息。發生連接埠衝突時,應選擇新的未佔用連接埠,並同步修改遠端裝置設定。
第二步:確認監聽範圍
檢查 allow-lan 是否為 true,再查看連接埠實際監聽的位址。只監聽回環位址表示請求無法從網卡進入。修改圖形用戶端選項後,應確認它已寫入目前生效的設定,而不是只修改了某個尚未啟用的設定檔。
第三步:確認 IP、連接埠與網路
核對手機填寫的是主機目前的區域網路 IP,而不是閘道位址、虛擬網卡位址或上次連線時的舊位址。確認兩台裝置連線到允許互相存取的網路,關閉會切換網路路徑的行動數據輔助功能後再測試。若路由器啟用了訪客隔離,應切換到主網路或調整隔離策略。
第四步:檢查防火牆
連接埠已在監聽,但遠端連線逾時,常見原因是入站防火牆。建立僅允許本地網段存取目標 TCP 連接埠的規則,再從另一台電腦測試連接埠連通性。Windows 可在遠端 PowerShell 中執行:
Test-NetConnection 192.168.1.20 -Port 7890
TcpTestSucceeded 為真,只表示 TCP 連接埠可達,不代表代理規則與節點已經運作;為假則應繼續檢查位址、監聽、防火牆與網路隔離。
第五步:查看連線與規則命中
連接埠可達但網頁無法開啟時,開啟 Clash 的執行日誌或連線清單。若完全沒有新連線,用戶端應用程式可能未使用系統代理,或代理設定未儲存。若看得到連線但失敗,繼續檢查網域名稱解析、節點狀態、策略群組選擇與規則命中結果。
在規則模式下,測試目標可能命中直連;在全域模式下,目前的全域策略可能指向無法使用的節點;在直連模式下,所有請求都會繞過代理節點。模式與策略群組屬於轉送層問題,應與區域網路連接埠是否可到達分開判斷。
第六步:區分 HTTP、DNS 與 UDP 限制
手機 Wi-Fi 中的 HTTP 代理主要處理採用 HTTP 代理機制的 TCP 請求。應用程式自行傳送的 DNS、QUIC、遊戲 UDP 或其他不讀取系統代理的流量,可能不會進入該連接埠。出現「瀏覽器可用、某個應用程式不可用」時,不應立即判斷分享失效,應先確認該應用程式支援哪種代理方式。
如果 SOCKS5 用戶端提供「遠端解析網域名稱」選項,啟用後可由代理端處理目標網域名稱,減少用戶端本機 DNS 行為造成的差異。HTTP CONNECT 請求也可能將網域名稱交給代理端,但具體行為取決於用戶端實作。涉及 UDP 的應用程式還需要用戶端、入口協定、節點與防火牆共同支援,不能以一般網頁測試結果取代。
| 現象 | 優先檢查 | 下一步 |
|---|---|---|
| 本機代理也無法使用 | 核心狀態、設定解析、連接埠衝突 | 查看啟動日誌並確認本機監聽 |
| 遠端連線逾時 | 主機 IP、防火牆、用戶端隔離 | 測試 TCP 連接埠可達性 |
| 連線立即遭拒 | 連接埠號碼、監聽位址、核心是否執行 | 核對 mixed-port 與監聽結果 |
| 瀏覽器可用但應用程式不可用 | 應用程式是否遵循 HTTP 代理 | 改用應用程式內的 SOCKS5 或本機 TUN |
| 日誌有連線但出口未變化 | 目前模式、規則命中、策略群組 | 檢查連線詳細資料中的目標策略 |
| 重新連線 Wi-Fi 後失效 | 主機區域網路 IP 是否變更 | 設定 DHCP 位址保留 |
設定完成後的驗證清單
- 主機本機能透過
mixed-port正常存取網路。 allow-lan已開啟,連接埠並非只監聽127.0.0.1。- 手機填寫的是主機目前的區域網路 IP 與正確連接埠。
- 防火牆只對需要的本地網段放行入站連線。
- 路由器未對兩台裝置啟用用戶端隔離。
- Clash 連線清單能看到來自區域網路裝置的新請求。
- 測試目標命中了預期規則與策略群組,而不是意外直連。
- 使用結束後,依實際需要關閉區域網路存取或保留受限規則。
混合連接埠分享的關鍵不在單一開關,而在入口、網路與轉送三層同時成立:Clash 正確監聽、區域網路允許連線,且規則與節點能完成後續連線。依照這個順序檢查,就能將「手機連不上代理」拆解成明確的設定項目,而不是在連接埠、節點與系統設定之間反覆試錯。
Next route
選擇用戶端並繼續設定
先依系統與維護狀態選擇 Clash 用戶端,再透過使用文件完成訂閱匯入、規則選擇與區域網路設定。