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

說明 mixed-port 如何同時支援 HTTP 與 SOCKS5,並介紹啟用 allow-lan 後,如何在手機、電視和遊戲機設定代理位址,以及防火牆的放行方式。

先確認:共用的是代理入口,不是整台電腦的網路

讓手機和電視共用電腦上的 Clash,通常只需要符合三個條件:電腦的混合連接埠正在監聽、用戶端允許區域網路連線,以及系統防火牆允許可信任的裝置存取該連接埠。接著在裝置上輸入電腦的區域網路 IP 位址和連接埠。電腦必須保持開機,用戶端和目前使用的設定也必須持續執行。

這和開啟電腦的 Wi-Fi 熱點或修改路由器閘道器是兩回事。手動設定 HTTP 代理後,只有遵循代理設定的應用程式流量才會經過 Clash。遊戲連線、部分電視應用程式,以及使用自有網路堆疊的程式仍可能直接連線。即使在電腦上啟用 TUN 模式,也不會自動接管同一個無線網路中其他裝置的流量。

本文使用的範例參數

  • 電腦區域網路 IPv4 位址:192.168.50.10。
  • 家庭網路網段:192.168.50.0/24,子網路遮罩為 255.255.255.0。
  • Clash 混合連接埠:7890。
  • 手機或電視與電腦連線至同一個可信任的區域網路,且裝置彼此可以連線。

這些位址僅供說明設定位置,不代表你的實際網路環境。後續步驟中,請將範例 IP 位址和網段換成查到的值。連接埠也應以用戶端目前的設定為準,不能只依常見預設值判斷。

mixed-port、allow-lan 與監聽位址各自的用途

mixed-port 是 HTTP 代理和 SOCKS5 代理共用的監聽連接埠。兩種用戶端都能連到同一個連接埠,再由核心依據連線內容識別通訊協定。它不是 HTTP 與 SOCKS5 之間的轉換開關,也不代表裝置的所有流量都會自動經過代理。

參數 控制項目 本例設定
mixed-port HTTP 與 SOCKS5 共用的入口連接埠 7890
allow-lan 是否允許來自區域網路的代理連線 true
bind-address 允許區域網路連線時使用的監聽位址 192.168.50.10
mode 連線進入核心後的規則處理模式 rule

allow-lan: true 和監聽位址需要一併檢查。如果連接埠只監聽 127.0.0.1,其他裝置仍無法連線。迴路位址永遠指向輸入該位址的裝置:在手機上輸入 127.0.0.1,指向的是手機,而不是電腦。

bind-address: "*" 代表監聽範圍較廣,可能涵蓋多張網路介面卡。若是固定的家庭網路,可以先綁定電腦的特定區域網路位址,縮小入口暴露範圍。電腦位址變更後,必須同步修改設定,因此建議在路由器中為電腦設定 DHCP 位址保留。

HTTPS 網站也能使用 HTTP 代理入口

手機介面中的「HTTP 代理」通常也能用來連線至 HTTPS 網站:應用程式先向代理發出 CONNECT 請求,再透過通道傳送 TLS 資料。正常使用這種入口不需要安裝額外憑證。代理類型指的是裝置與代理入口之間的互動方式,並不表示目標網站必須使用 HTTP。

設定電腦:確認 IP、啟用入口並檢查監聽狀態

步驟一:查詢目前使用的網路介面卡位址

在 Windows 終端機執行 ipconfig,找到目前連線的無線區域網路介面卡或乙太網路介面卡,記下 IPv4 位址、子網路遮罩和預設閘道器。不要誤用虛擬網路介面卡、TUN 網路介面卡或已中斷連線的介面卡位址。使用 macOS 時,可前往「系統設定」→「網路」→目前使用的連線→「詳細資訊」→「TCP/IP」查看位址。

如果手機連上訪客網路,即使無線網路名稱相近,也可能無法存取電腦。請先讓兩台裝置連上允許彼此通訊的家庭網路;若必須跨網段存取,應請網路管理員確認路由和存取控制,而不是直接擴大代理的開放範圍。

步驟二:設定混合連接埠和區域網路存取

在用戶端設定中尋找「混合連接埠」和「允許區域網路連線」。不同圖形化用戶端的選單名稱不盡相同,確認實際執行中的設定,比照抄特定介面的操作路徑更可靠。使用 mihomo 核心時,可將以下頂層欄位合併到既有設定中;保留原有節點、策略群組和規則,不要用這幾行取代整份訂閱內容。

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

請留意 YAML 縮排,上述四個欄位位於同一層。如果用戶端提供覆寫或合併設定功能,建議優先在該處儲存本機設定,避免下次更新訂閱時遭到覆蓋。部分用戶端會依圖形介面的連接埠選項產生執行設定,編輯後請重新載入,並確認實際生效的監聽位址。

步驟三:確認連接埠確實已啟動

在 Windows PowerShell 中執行以下命令,查看 TCP 監聽狀態:

Get-NetTCPConnection -State Listen -LocalPort 7890 |
  Select-Object LocalAddress, LocalPort, OwningProcess
  • 看到 192.168.50.10:符合本例的特定位址綁定設定。
  • 看到 0.0.0.0 或 :::正在監聽通用位址,請接著檢查 IPv4、IPv6 和防火牆範圍。
  • 只看到 127.0.0.1:目前仍是本機入口,請檢查區域網路設定。
  • 沒有監聽結果:請確認用戶端是否正在執行、設定是否成功載入,以及連接埠是否被其他程序占用。

如果連接埠遭到占用,請勿直接結束不明程序。先根據 OwningProcess 查詢程序,再決定要調整哪個程式的連接埠。若改用其他連接埠,手機、電視和防火牆規則也要同步更新。

設定防火牆放行:限制網路類型與來源網段

電腦本機能使用代理,不代表區域網路中的裝置也能連進來。電腦自行存取迴路位址時,通常不會經過相同的輸入連線檢查,因此需要另外測試防火牆。請先確認目前連線確實是可信任的家庭網路,再將對應的網路設定檔設為「私人」;不要為了共用代理,把公用無線網路改成可信任網路。

Windows 輸入規則範例

以系統管理員身分開啟 PowerShell,依照本例的實際位址建立 TCP 輸入規則。執行前請先確認 LocalAddress 和 RemoteAddress,分別用來限制本機接收位址和遠端來源網段。

New-NetFirewallRule `
  -DisplayName "Clash LAN TCP 7890" `
  -Direction Inbound `
  -Action Allow `
  -Protocol TCP `
  -LocalPort 7890 `
  -LocalAddress 192.168.50.10 `
  -RemoteAddress 192.168.50.0/24 `
  -Profile Private

這項規則適用於本文的 HTTP 代理測試,不會將連接埠開放給所有網路。如果系統中已有範圍較廣的同類放行規則,也應一併檢查;新增範圍較窄的規則不會自動收緊舊規則。停止共用後,可使用以下命令刪除本次建立的規則:

Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"

在 macOS 上,前往「系統設定」→「網路」→「防火牆」→「選項」,確認實際提供代理服務的用戶端或核心程序是否允許傳入連線。不同系統版本的選項名稱可能略有差異。如果另有網路過濾工具,也要檢查其中的存取規則,不要只查看系統防火牆。

在手機、電視和遊戲機設定代理位址

手機:在目前使用的無線網路中設定手動代理

  1. 連上可與電腦互相連線的無線網路。
  2. 開啟目前網路的詳細設定,找到「代理」或「設定代理」,然後選擇「手動」。
  3. 在「伺服器」或「代理主機名稱」欄位輸入 192.168.50.10,不要加上 http://,也不要填入路由器閘道器。
  4. 在「連接埠」欄位輸入 7890,儲存後重新開啟網頁進行測試。

部分手機可前往「設定」→「Wi-Fi」→點選目前網路的資訊按鈕→「設定代理」;其他裝置可能需在目前網路的「修改網路」或「進階選項」中設定。這項設定通常只套用於目前的無線網路,切換至行動數據後就不會繼續使用這個區域網路入口。

如果用戶端設定了代理驗證,也要填入相符的使用者名稱和密碼。如果尚未設定驗證,請勿任意開啟手機上的驗證選項。部分應用程式或裝置不支援需要驗證的手動代理,請先確認相容性再決定使用方式。

電視:先確認系統和應用程式是否支援

在電視目前使用的網路進階選項中尋找 HTTP 代理。如果提供主機和連接埠欄位,請輸入與手機相同的值。部分電視只能在連線網路時設定代理;部分應用程式則完全不使用系統代理。電視能連上網路、瀏覽器能開啟網頁,不代表影片應用程式也會使用代理。

如果網路選單只有 IP、子網路遮罩、閘道器和 DNS,沒有代理選項,請勿將 7890 填入 DNS 或閘道器欄位。DNS 伺服器位址不等於 HTTP 代理位址;請改用應用程式本身支援的代理入口,或另行規劃閘道器方案。

遊戲機:HTTP 代理不等於接管遊戲 UDP 流量

如果遊戲機的網路設定提供代理伺服器選項,可以試著填入電腦 IP 位址和混合連接埠。這可能只會影響登入、商店、下載或系統檢查等部分請求。即時對戰通常使用 UDP,不能只憑商店連線成功,就認定遊戲流量已經經過代理。

SOCKS5 的 UDP 轉送還取決於應用程式是否支援 UDP ASSOCIATE、核心設定、節點能力和 UDP 防火牆規則。本文的 TCP 放行範例不涵蓋這些條件。除非有明確需求,否則不要額外開放 UDP,也不要把「啟用 allow-lan」當成已建立完整的遊戲加速連線。

驗證連線:確認連接埠可達、請求有出現,並檢查規則命中

分層檢查比反覆切換節點更容易找出問題。先確認電腦本機能透過該連接埠存取目標,再測試另一台裝置是否能連到入口,最後檢查規則和節點。每次只變更一個條件,並記錄變更前後的結果。

  1. 檢查電腦的對外連線。使用用戶端目前選用的節點,開啟已知可正常連線的 HTTPS 網頁。如果電腦本身也無法連線,請先修復訂閱、節點或規則,不要繼續調整手機。
  2. 檢查區域網路連接埠。如果有另一台 Windows 電腦可用,請執行 Test-NetConnection 192.168.50.10 -Port 7890,查看 TcpTestSucceeded。測試成功只代表 TCP 入口可連線,不代表節點可用。
  3. 檢查實際代理請求。在另一台已安裝 curl 的裝置上執行以下命令,明確指定 HTTP 代理。
  4. 檢查連線記錄。在用戶端的連線面板中,確認是否出現遠端裝置的來源位址、目標網域、命中規則和最終策略。
curl --proxy http://192.168.50.10:7890 --connect-timeout 10 --max-time 20 -I https://clash67.com/

此處的 10 和 20 是測試逾時限制,單位為秒,不代表預期延遲或效能承諾。收到網站的 HTTP 回應,表示請求已進入回應階段;實際狀態碼也會受到網站本身影響。如果出現代理驗證錯誤,請檢查驗證參數,而不是繼續開放連接埠。

在規則模式下,手機和電視送出的連線仍會依照電腦目前的設定分流。看到 DIRECT 可能只是規則選擇了直連,不代表區域網路代理沒有生效。如果改用 SOCKS5 測試,socks5h://192.168.50.10:7890 可讓 curl 將網域名稱交由代理解析;一般的 socks5:// 解析位置不同,排查 DNS 時請留意兩者差異。

常見問題:依照現象縮小排查範圍

現象 優先檢查項目 下一步
電腦可用,手機連線逾時 監聽位址、防火牆、無線隔離 先測試 TCP 7890,再查看連線記錄
瀏覽器可用,電視應用程式失敗 應用程式是否遵循 HTTP 代理設定 確認失敗時核心是否收到請求
重新啟動路由器後失效 電腦的 DHCP 位址是否變更 更新位址並設定 DHCP 位址保留
有連線記錄,但目標網站無法開啟 規則、策略群組、節點與名稱解析 確認命中規則和實際選用的節點
電腦進入睡眠後全部中斷 主機電源狀態與網路連線 喚醒電腦,並視需要調整接上電源時的睡眠設定

需要開放外部控制連接埠嗎?

不需要。手機存取代理只需使用混合連接埠。external-controller 是管理介面,與裝置使用的代理入口不同,不應為了區域網路共用而順手開放。請讓管理介面維持綁定本機,並依照用戶端要求設定存取密碼。

需要啟用 TUN 或修改手機 DNS 嗎?

手動 HTTP 代理本身不需要電腦啟用 TUN,通常也不必先修改手機 DNS。代理收到網域請求後,解析方式取決於使用的通訊協定和核心設定;未經代理的應用程式仍可能自行解析。請先透過明確指定代理的請求進行測試,再判斷是否有 DNS 問題。

停止共用後要如何還原?

先將手機和電視的代理設定改回「無」或關閉手動代理,再停用用戶端的區域網路存取並刪除暫時建立的放行規則。否則電腦關機後,裝置可能仍會嘗試連線至已離線的代理入口,造成無線網路顯示已連線,網頁卻無法開啟。

最後保留一份簡短紀錄:電腦固定位址、混合連接埠、放行網段,以及使用代理的裝置。後續更新用戶端或訂閱後,只要重新檢查監聽狀態和規則即可,不必再次擴大網路權限。如需了解訂閱匯入和規則基礎,可接著閱讀Clash 設定入門指南。

Clash 用戶端下載