混合連接埠 7890 與允許區域網路:讓手機共用電腦代理
了解 mixed-port 如何同時支援 HTTP 與 SOCKS5,並學會啟用 allow-lan、查詢電腦的區域網路 IP,以及在手機 Wi-Fi 設定代理。
先確認條件:電腦可連線,手機與電腦彼此可通訊
手機共用電腦代理,實際上是將電腦上的 Clash 或 mihomo 用戶端當作區域網路代理入口。手機會將支援代理的請求交給電腦,再由電腦依照目前設定中的規則與策略組,決定直接連線或經由節點轉送。手機不必為這條連線路徑再次匯入訂閱,但電腦必須保持開機、連上網路,並持續執行代理核心。
先在電腦上開啟需要代理的網站。確認訂閱已啟用、策略組已選取可用節點,再設定區域網路分享。如果電腦本身都無法連線,請先處理訂閱與節點問題;修改手機的代理位址無法解決上游故障。
- 網路要求:電腦可以使用有線網路,手機可以連接 Wi-Fi,但兩者之間必須允許區域網路通訊。最簡單的方式是讓兩者連上同一台家用路由器。
- 隔離限制:訪客 Wi-Fi、無線用戶端隔離或企業網路存取控制,可能會阻止手機連線至電腦。連上相同名稱的 Wi-Fi,不代表兩台裝置一定能互通。
- 適用範圍:手機 Wi-Fi 的手動 HTTP 代理,主要適用於遵循系統代理設定的應用程式,並非接管整台裝置的所有流量。
本文範例使用電腦位址
192.168.1.50、手機位址192.168.1.80、混合連接埠7890。這些是說明用的內部網路位址,並非自動偵測結果。實際操作時,請先查出自己的位址再填入。
認識 mixed-port、allow-lan 與監聽位址
mixed-port 是同一個 TCP 監聽連接埠上的協定識別入口,可接受 HTTP 代理請求與 SOCKS5 連線。這不是將兩種協定疊加使用,也不需要在手機同時設定兩種代理。手機 Wi-Fi 設定通常提供 HTTP 代理,因此填入混合連接埠時,使用的是其中的 HTTP 代理功能。
| 欄位 | 用途 | 本例設定值 |
|---|---|---|
mixed-port | HTTP 與 SOCKS5 共用的代理入口 | 7890 |
allow-lan | 允許來自區域網路的代理連線 | true |
bind-address | 限制代理監聽的本機位址 | 192.168.1.50 |
7890 是常見設定值,並非強制標準。用戶端可能使用其他連接埠,請以目前執行中的設定及實際監聽結果為準。單獨的 port 通常是 HTTP 連接埠,socks-port 則是 SOCKS 連接埠;不要看到任何一個數字就填進手機。
127.0.0.1 是迴路位址。電腦監聽此位址時,只接受電腦本機的連線;手機若填入此位址,指向的會是手機本身。bind-address 設為 '*' 通常代表監聽所有介面,但暴露範圍也更大。本文使用指定的區域網路 IPv4 位址,並搭配防火牆縮小存取範圍。
為什麼 HTTPS 網頁也能使用 HTTP 代理
瀏覽 HTTPS 網站時,支援代理的應用程式通常會透過 HTTP CONNECT 建立通道,再於通道內與目標網站進行 TLS 通訊。一般轉送不需要安裝根憑證,也不必關閉憑證驗證。若設定分享後出現憑證警告,請先停止敏感操作,檢查時間、網路與目標網站;不要試圖安裝來路不明的憑證來「修好代理」。
步驟一:找出電腦目前的區域網路 IPv4 位址
Windows:查看目前使用的網路介面卡
按下 Win + R,輸入 cmd 後按 Enter,執行下方指令。電腦使用有線網路時,查看「乙太網路介面卡」;使用無線網路時,查看目前連線中的「無線區域網路介面卡」。
ipconfig
記下該介面卡的「IPv4 位址」。例如 IPv4 位址是 192.168.1.50、預設閘道是 192.168.1.1,手機的代理伺服器應填前者,不是閘道。忽略未連線介面卡、VPN 虛擬介面卡與 TUN 介面卡的位址,也不要複製查詢公網 IP 網頁顯示的位址。
macOS:查看網路詳細資訊
在 macOS 13 及以上版本,前往「系統設定」→「網路」→目前使用的 Wi-Fi 或乙太網路→「詳細資訊」→「TCP/IP」,記下 IPv4 位址。也可以在「Wi-Fi」頁面開啟已連線網路的「詳細資訊」,再查看「TCP/IP」。
路由器透過 DHCP 指派的位址,重新連線後可能會變動。首次連線成功後,可以在路由器的 DHCP 位址保留功能中,為電腦保留目前位址。否則電腦位址從 192.168.1.50 變更時,監聽設定與手機代理也都需要一併更新。
步驟二:啟用區域網路分享並確認連接埠
不同 Clash 圖形介面的選單名稱不盡相同。請先在「設定」中尋找「允許區域網路連線」或「Allow LAN」,啟用後確認「連接埠」或「混合連接埠」的實際數值。如果用戶端支援編輯持久化設定,可以將下方三個頂層欄位合併至現有設定;不要用這幾行取代整份訂閱檔案。
mixed-port: 7890
allow-lan: true
bind-address: 192.168.1.50
欄位前不要加縮排,也不要放在 proxies 或 dns 之內,更不要重複定義已有的同名欄位。儲存後,使用用戶端提供的重新載入或重新啟動核心功能套用設定。如果電腦的實際位址與範例不同,必須先修改 bind-address,否則核心可能無法進行綁定。
更新訂閱可能會覆寫直接編輯的訂閱檔案;圖形用戶端也可能以介面設定覆寫連接埠與允許區域網路欄位。優先使用用戶端的持久化設定或覆寫功能,重新載入後再確認執行結果。只在檔案中看到 true,不代表目前的核心已套用設定。
確認 7890 確實正在監聽
Windows 可在命令提示字元中執行:
netstat -ano -p tcp | findstr ":7890"
查看本機位址欄與狀態欄。192.168.1.50:7890 且狀態為 LISTENING,符合本例;0.0.0.0:7890 表示監聽所有 IPv4 介面;若只有 127.0.0.1:7890,則仍僅供本機使用。輸出中的遠端位址出現 7890,不代表本機已在監聽。
macOS 可在終端機執行 lsof -nP -iTCP:7890 -sTCP:LISTEN。如果沒有監聽結果,請先檢查核心是否已啟動、連接埠是否被其他程式占用,以及重新載入設定時是否發生錯誤。
允許區域網路連線不代表允許從公網存取。不要在路由器上為 7890 設定連接埠轉送,也不要為了分享代理而開放外部控制器連接埠。控制 API 與手機使用的代理連接埠,是兩種不同的入口。
步驟三:設定防火牆,只允許可信來源
成功監聽後,系統防火牆仍可能封鎖手機連線。不要直接關閉防火牆。確認 Windows 家用網路可信後,可前往「設定」→「網路和網際網路」→目前連線的內容,確認網路設定檔,再為私人網路建立範圍有限的輸入規則。
下方 PowerShell 指令需要系統管理員權限,只允許範例手機 192.168.1.80 存取本機 TCP 7890,且僅適用於私人網路。執行前,請替換成手機 Wi-Fi 詳細資訊中顯示的實際位址。
New-NetFirewallRule -DisplayName "Mihomo LAN TCP 7890" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 7890 -RemoteAddress 192.168.1.80 -Profile Private
新增範圍較小的規則,不會撤銷既有的廣泛允許規則。前往「Windows 安全性」→「防火牆與網路保護」→「進階設定」→「輸入規則」,檢查用戶端是否已有允許所有來源的規則,並依實際需求縮小範圍。手機位址變更後,也需要更新來源範圍。
macOS 可前往「系統設定」→「網路」→「防火牆」→「選項」,檢查用戶端或實際執行的核心程式是否遭到封鎖。公共 Wi-Fi 不適合開放未經驗證的代理入口;若無法控管區域網路中的裝置,建議改在手機使用獨立用戶端,而非放寬所有輸入限制。
步驟四:在手機 Wi-Fi 設定中填入 HTTP 代理
iPhone 與 iPad
- 前往「設定」→「Wi-Fi」,點選目前網路右側的資訊按鈕。
- 找到「設定代理伺服器」,選擇「手動」。
- 「伺服器」填入電腦的區域網路位址,例如
192.168.1.50;「連接埠」填入7890。 - 本例未設定代理驗證,因此不要啟用「認證」。儲存後使用 Safari 開啟網頁測試。
Android
以原生 Android 常見介面為例,前往「設定」→「網路和網際網路」→「網際網路」→目前使用的 Wi-Fi→編輯網路→「進階選項」→「代理」→「手動」。其他廠牌的設定入口可能位於 Wi-Fi 詳細資訊中的「修改網路」。
- 代理伺服器主機名稱:
192.168.1.50,只填位址,不要加上http://,也不要附加連接埠。 - 代理連接埠:
7890,須與電腦的混合連接埠相同。 - 不使用代理的位址:首次排查時先保留預設值,不要將待測試的網站誤填進略過清單。
儲存後重新開啟瀏覽器。這項設定通常只套用於目前的 Wi-Fi 網路,不會自動成為行動數據代理。部分 Android 應用程式會忽略系統 HTTP 代理,有些應用程式也會沿用設定前建立的連線;必要時請完全關閉該應用程式後再重新開啟。
驗證連線:先查看連線紀錄,再確認應用程式適用範圍
在電腦用戶端開啟「連線」或日誌頁面,再讓手機重新整理網頁。如果看到來自手機位址的新連線,表示手機已連上電腦代理。接著查看該連線符合的規則與策略組:符合 DIRECT 時會直接連線,符合代理策略時才會使用對應節點。
因此,手機共用的是電腦目前的分流設定,不代表所有網站都會自動使用同一個節點。排查時可以觀察單一請求的連線路徑,不要只憑出口 IP 是否變動來判斷分享是否成功。也不要把「瀏覽器能連線」等同於「所有應用程式與協定都已接管」。
| 狀況 | 優先檢查項目 | 下一步 |
|---|---|---|
| 所有網頁都逾時,電腦沒有手機連線紀錄 | IP、連接埠、監聽位址、防火牆、訪客網路隔離 | 依照網路連線路徑逐項確認 |
| 電腦顯示有手機連線,但無法存取目標網站 | 符合的規則、策略組、節點狀態、核心日誌 | 先在電腦測試相同目標 |
| 瀏覽器正常,但特定應用程式仍無法連線 | 應用程式是否遵循系統代理設定、是否使用 UDP | 改用手機端用戶端評估流量接管方式 |
| 電腦進入睡眠後,手機無法連線 | 代理入口已停止回應 | 喚醒電腦,或關閉手機的手動代理 |
| 重新連上 Wi-Fi 後無法使用 | 電腦或手機的 DHCP 位址已變更 | 更新位址、監聽設定與防火牆範圍 |
DNS、UDP 與 TUN 的適用範圍
HTTP 代理請求或 CONNECT 可以攜帶目標網域名稱,再由電腦端依核心設定處理後續解析;但這不代表手機所有 DNS 請求都會經過電腦。應用程式可能會預先解析網域名稱,也可能自行建立其他連線,因此只設定 Wi-Fi 代理不能視為完整的 DNS 防洩漏方案。
手機 Wi-Fi 的 HTTP 代理也不是通用的 UDP 轉送入口。遊戲、語音及部分使用 QUIC 的連線可能會有不同表現。即使電腦啟用了 TUN 模式,也無法憑空攔截未路由至電腦的手機流量。若要涵蓋更多應用程式,可在手機安裝合適的用戶端;若要在閘道層級接管流量,則需要設定路由與透明代理,並非只修改此處的三個欄位即可。
結束分享:先還原手機設定,再關閉電腦代理入口
不再分享時,iPhone 請回到「設定代理伺服器」並選擇「關閉」;Android 請回到目前 Wi-Fi 的代理設定並選擇「無」。確認網頁已可透過原本的網路正常瀏覽後,再關閉電腦的允許區域網路設定或退出用戶端,避免手機持續連線至已停止的代理入口。
如果只為這次測試新增了 Windows 防火牆規則,可在系統管理員 PowerShell 中刪除:
Remove-NetFirewallRule -DisplayName "Mihomo LAN TCP 7890"
最後記住三個對應關係:手機的伺服器位址對應電腦的區域網路 IP,手機的連接埠對應實際監聽的混合連接埠,手機可使用的範圍則取決於應用程式是否支援系統 HTTP 代理。依序確認「電腦可連線、區域網路可互通、連接埠正在監聽、手機設定正確、連線紀錄已驗證」,通常就能將問題定位到明確的環節。