Clash 混合連接埠 7890 與允許區域網路連線:讓手機、電視共用電腦代理

了解 mixed-port 與 HTTP/SOCKS 連接埠的差異,以及如何開啟區域網路連線、設定手機電視代理和調整防火牆。

要讓手機和電視共用電腦代理,必須同時符合三個條件:電腦的代理連接埠接受區域網路連線、防火牆允許目標裝置存取,以及目標裝置填入電腦的區域網路位址。只在電腦上開啟「系統代理」,不會自動改變同一個 Wi-Fi 網路中其他裝置的連線路徑。

本文以電腦位址 192.168.1.20、混合連接埠 7890 為例。這些位址僅供設定示範,並非實測結果;實際操作時請使用電腦目前的區域網路 IPv4 位址。用戶端採用 mihomo 核心時,可依下列設定項目檢查;ClashX 等用戶端的選單名稱與可用功能則依版本而異。

一、mixed-port 7890 接受哪些連線

mixed-port 是 HTTP 與 SOCKS 共用的監聽連接埠。用戶端會根據連線內容辨識代理協定,因此手機系統選擇 HTTP 代理、命令列選擇 SOCKS5,都能連到同一個 7890 連接埠。連接埠號碼本身不會決定協定,也不會決定流量最後使用哪個節點。

設定項目支援的協定使用情境
mixed-port: 7890HTTP 與 SOCKS多個裝置共用一個代理連接埠
port: 7890HTTP 代理系統 Wi-Fi 代理、HTTP CONNECT
socks-port: 7891SOCKS 代理支援 SOCKS5 的應用程式
external-controller控制介面管理面板,不是裝置上網用的連接埠

上表列出不同的設定方式,並非要求把所有連接埠都開啟。請避免讓 port 與 mixed-port 同時占用同一個監聽位址的 7890。使用混合連接埠時,通常不必另外為 HTTP 設定連接埠。

二、確認電腦位址、監聽位址與區域網路連線設定

先找出目前使用的網路介面卡

  1. Windows 開啟終端機並執行 ipconfig,查看目前 Wi-Fi 或乙太網路介面卡的 IPv4 位址與子網路遮罩。請勿使用虛擬網路介面卡、TUN 介面卡或已中斷連線的介面卡位址。
  2. macOS 開啟「系統設定」→「網路」→目前的連線→「詳細資訊」→「TCP/IP」,查看 IP 位址。
  3. 確認手機與電腦位於可以互相連線的區域網路。電腦使用網路線、手機連 Wi-Fi 也沒問題,但路由器不能將兩者隔離在不同的訪客網路中。
  4. 若要長期共用,請在路由器的 DHCP 位址保留設定中固定電腦位址。否則電腦重新連線後,手機儲存的代理伺服器位址可能會失效。

將設定套用至目前執行的核心

在用戶端設定中找到「允許區域網路連線」或「Allow LAN」,並確認混合連接埠。各用戶端的設定入口不盡相同,請以實際執行中的設定與連接埠監聽結果為準。以下是可合併至現有設定頂層的 mihomo 片段,並非包含節點與規則的完整訂閱:

mixed-port: 7890
allow-lan: true
bind-address: 192.168.1.20
mode: rule

allow-lan: true 允許來自區域網路的連線;bind-address 用來指定監聽位址。此範例只監聽電腦的 192.168.1.20,位址變更時必須一併修改。部分用戶端會自動產生這些欄位,手動修改訂閱檔案可能在更新時遭到覆蓋;建議優先使用用戶端的持久設定或覆寫功能,並在重新載入後再次檢查。

如果用戶端只能設定 bind-address: "*",代表會監聽所有介面,請透過防火牆限制連線來源。請勿將「所有介面」誤解為「只允許家中的 Wi-Fi」:電腦上的其他網路介面也可能接受連線。

這裡只需要設定代理監聽,不必啟用 TUN。mode: rule 代表區域網路裝置送入的請求仍會依目前規則比對,不會讓所有請求自動使用同一個代理節點。請檢查規則命中的策略群組,並確認該群組已選取可用節點。

三、防火牆僅允許必要來源連線

「允許區域網路連線」與系統防火牆是兩項彼此獨立的控管。核心已開始監聽,不代表 Windows 或 macOS 會允許傳入連線。請先確認家用網路可信,再建立範圍最小的規則;不要長期關閉防火牆來代替問題排查。

Windows:限定私人網路、TCP 7890 與來源網段

開啟「Windows 安全性」→「防火牆與網路保護」→「進階設定」→「輸入規則」,建立連接埠規則,並在「範圍」中限制遠端 IP。也可以在系統管理員 PowerShell 中執行以下範例:

New-NetFirewallRule -DisplayName "mihomo LAN TCP 7890" `
  -Direction Inbound -Action Allow -Protocol TCP `
  -LocalAddress 192.168.1.20 -LocalPort 7890 `
  -RemoteAddress 192.168.1.0/24 -Profile Private

這裡的 192.168.1.0/24 僅適用於相應的家用網段。若只供一支手機使用,可將遠端位址改為手機的固定 IP,進一步縮小允許範圍。網路設定檔必須確實設為「私人」,規則才能如預期生效;請勿將飯店或公共 Wi-Fi 改成私人網路來套用此規則。

本文的 HTTP 共用方式使用 TCP。若要透過 SOCKS5 轉送 UDP,還需要應用程式支援、核心設定與 UDP 防火牆規則,不能靠任意開放所有連接埠解決。停止共用後,可刪除本範例規則:

Remove-NetFirewallRule -DisplayName "mihomo LAN TCP 7890"

macOS:允許實際接收連線的程式

開啟「系統設定」→「網路」→「防火牆」→「選項」,確認目前執行的用戶端或核心程式已獲准接受傳入連線。若已啟用「阻止所有傳入連線」,請先評估此設定是否與共用需求衝突。第三方安全軟體也可能另有網路過濾規則。

四、如何在手機、電視與遊戲主機設定代理

目標裝置需要填入的是「電腦區域網路 IP+代理連接埠」,不是節點伺服器位址,也不是訂閱連結。以下範例的伺服器為 192.168.1.20、連接埠為 7890。伺服器欄位通常只填 IP,不加上 http://,也不要把連接埠一併填入同一欄。

iPhone 與 iPad:為目前的 Wi-Fi 手動設定代理

  1. 開啟「設定」→「Wi-Fi」,點選目前連線的網路右側資訊按鈕。
  2. 進入「設定代理伺服器」→「手動」。
  3. 伺服器填入 192.168.1.20,連接埠填入 7890,然後儲存設定。
  4. 若核心未設定驗證,請勿啟用「驗證」;若已設定驗證,請填入與核心一致的使用者名稱和密碼。
  5. 使用瀏覽器開啟 HTTPS 網頁,同時查看電腦用戶端的連線或記錄。

此設定僅適用於目前的 Wi-Fi,不會自動套用至行動網路。部分應用程式不會遵循系統 HTTP 代理,因此瀏覽器可以使用,不代表所有應用程式都會經過電腦。使用完畢後,請將「設定代理伺服器」改回「關閉」,避免電腦進入睡眠後手機持續連線失敗。

Android:編輯目前連線網路的代理設定

以下以 Pixel 的 Android 14 介面為例:進入「設定」→「網路和網際網路」→「網際網路」→目前 Wi-Fi 旁的設定按鈕→編輯網路→「進階選項」→「代理伺服器」→「手動」。其他廠牌的入口可能位於「修改網路」或「進階設定」。

  • 代理主機名稱:192.168.1.20。
  • 代理連接埠:7890。
  • 略過代理的位址:初次測試時維持預設值,確認基本連線正常後,再新增本機服務例外。

Android 系統 Wi-Fi 代理同樣不是涵蓋整台裝置的透明代理。部分應用程式會自行建立連線、不讀取系統代理,因此仍可能直接連線。若系統介面沒有驗證欄位,但核心要求驗證,可能無法透過此介面完成連線;請勿因此在共用網路中直接取消必要的存取限制。

電視與遊戲主機:先確認裝置是否支援 HTTP 代理

電視的網路設定因機種而異。只有在目前網路的進階設定中明確提供「代理伺服器」與「連接埠」欄位時,才填入上述參數。沒有此選項的電視,無法只靠電腦開啟 Allow LAN 就使用代理;請改用裝置支援的用戶端,或規劃路由器端的分流設定。

以 PS5 為例,可進入「設定」→「網路」→「設定」→「設定網際網路連線」,選取已註冊的網路,再進入「進階設定」查看「代理伺服器」選項。即使能設定 HTTP 代理,也不代表遊戲即時通訊、語音及所有下載都會經過代理;請搭配電腦的連線記錄確認實際流量。

五、依「監聽 → 可連線 → 代理 → 規則」逐步排查

第一步:確認連接埠沒有只綁定回送位址

在 Windows PowerShell 執行:

Get-NetTCPConnection -State Listen -LocalPort 7890 |
  Select-Object LocalAddress, LocalPort, OwningProcess

在 macOS 終端機執行:

lsof -nP -iTCP:7890 -sTCP:LISTEN

如果結果只有 127.0.0.1:7890,區域網路裝置就無法透過電腦的 Wi-Fi 位址連線。依本文範例設定後,應可看到 192.168.1.20:7890 正在監聽。若沒有任何結果,請檢查核心是否正在執行、設定重新載入是否失敗,以及連接埠是否已被其他程式占用。

第二步:從另一台裝置測試 TCP 與代理請求

若區域網路中有另一台 Windows 電腦,可執行以下連接埠測試。請從另一台裝置執行;在電腦本機測試,無法排除無線隔離與輸入防火牆造成的問題。

Test-NetConnection 192.168.1.20 -Port 7890

TcpTestSucceeded 顯示 True,只代表 TCP 連線成功,不能證明代理協定或對外節點正常。接著使用支援代理的 curl 測試;在 Windows PowerShell 中可明確呼叫 curl.exe:

curl --proxy http://192.168.1.20:7890 --connect-timeout 5 --max-time 20 -I https://example.com/

curl --socks5-hostname 192.168.1.20:7890 --connect-timeout 5 --max-time 20 -I https://example.com/

第二個指令透過 SOCKS5 傳送目標網域名稱,由代理端處理解析,方便與本機解析路徑區分。指令中的 5 秒連線逾時與 20 秒總逾時是排查參數,不是延遲測試結果。兩個指令分別用來驗證混合連接埠的 HTTP 與 SOCKS 路徑,裝置不必同時設定兩種代理。

第三步:依症狀縮小排查範圍

症狀優先檢查項目處理方式
連線逾時,電腦沒有請求記錄防火牆、訪客網路、AP 隔離、IP 位址確認裝置能否互連,以及 TCP 7890 是否可連線
立即顯示連線遭拒連接埠未監聽或填寫錯誤確認執行中的設定與監聽位址
收到 HTTP 407代理驗證確認核心驗證設定與裝置憑證
有請求記錄,但網站無法開啟策略群組、節點、DNS、規則查看該請求命中的規則與對外連線錯誤
瀏覽器可用,特定應用程式無法使用應用程式是否遵循系統代理檢查應用程式本身的代理選項與傳輸協定
電腦喚醒或重新連線後失效電腦位址變更、核心停止執行固定 DHCP 位址並重新檢查監聽狀態

若只有網域名稱請求失敗,但 IP 連線測試正常,請檢查 mihomo 核心的 DNS 設定與記錄。不要任意將手機 DNS 改成電腦位址:混合連接埠不是 DNS 服務,監聽 7890 不代表電腦也提供 53 連接埠的 DNS 解析。

六、長期共用前的注意事項與收尾

區域網路代理需要電腦持續連線、核心持續執行,而且位址保持穩定。若要讓電視長期使用,請先檢查電腦的睡眠設定,避免螢幕關閉後整台電腦進入睡眠。訂閱更新或用戶端升級後,請重新確認區域網路連線開關、混合連接埠與覆寫設定仍然生效。

  • 規則的適用範圍:手機請求進入電腦後,會依電腦目前的規則分流;請勿直接套用電腦應用程式的程序名稱規則來辨識手機應用程式,一般區域網路代理請求不會帶有手機上的本機程序資訊。
  • TUN 的適用範圍:電腦啟用 TUN 不會自動讓手機成為下游裝置。透明代理還需要設定閘道、路由、DNS 與轉送,並非手動填寫 HTTP 代理的做法。
  • 安全注意事項:在可信任的網段內限制連線來源;共用網路時可搭配 mihomo 的 authentication 設定,但請先確認終端裝置支援相應的驗證方式。
  • 停止共用:將手機或電視的代理設定改回關閉,關閉用戶端的區域網路連線權限,並移除不再使用的防火牆規則。

最快的驗證流程是:先確認電腦正在監聽 192.168.1.20:7890,再從另一台裝置確認連接埠可連線,最後查看用戶端是否出現相應請求。三步都通過後,再排查節點、規則與應用程式相容性,比反覆切換 TUN、系統代理和 DNS 更容易找出問題。基本欄位說明請參閱使用文件中的混合連接埠說明。

下載 Clash