Clash 混合連接埠與允許區域網路連線:同網路裝置共用代理設定教學

了解 mixed-port 和 allow-lan 的用途,學會讓手機、平板與電視透過電腦的區域網路位址連線,並設定防火牆規則。

一、適用情境:讓區域網路裝置連上電腦的代理連接埠

手機、平板或電視不方便安裝代理用戶端時,可以讓同一個區域網路中的電腦提供 HTTP 代理入口。電腦執行 Clash,或使用 mihomo 核心的用戶端;其他裝置則在 Wi-Fi 設定中輸入電腦位址與混合連接埠。流量送到電腦後,仍由電腦目前使用的設定、規則與策略群組決定直連或代理。

這不會讓電腦自動變成路由器。開啟「允許區域網路連線」只會允許其他裝置連到代理監聽連接埠,不會變更手機的閘道,也不會讓所有應用程式自動使用代理。若需要整台裝置的流量都經代理、轉送 UDP,或支援不遵循系統代理設定的應用程式,應另行評估裝置端用戶端、閘道方案或 TUN,而不是反覆切換這個選項。

  • 適用情境:家庭網路中的手機瀏覽器、平板瀏覽網頁,以及支援手動設定 HTTP 代理的電視應用程式。
  • 使用條件:電腦與目標裝置可互相連線、電腦保持開機,且代理核心正常執行。
  • 不適合直接套用:飯店、訪客 Wi-Fi、啟用用戶端隔離的公共網路,以及需要統一轉送所有遊戲流量的情境。

二、參數差異:mixed-port、allow-lan 與 bind-address

設定項目用途本文範例
mixed-port同一個連接埠接收 HTTP 與 SOCKS 代理要求7890
allow-lan允許區域網路裝置連線至代理監聽入口true
bind-address允許區域網路連線時,指定監聽位址192.168.1.10
mode決定流量依規則、全域或直連方式處理rule

mixed-port 的「混合」指的是代理協定入口,不是把多條節點線路合併。手機 Wi-Fi 設定中的 HTTP 代理也可以連到這個連接埠。HTTPS 網站通常會透過 HTTP CONNECT 建立通道,不需要另外填寫所謂的 HTTPS 連接埠。

allow-lan: true 必須搭配監聽位址一起檢查。僅允許本機存取的 127.0.0.1 不能作為手機的連線目標;手機上的 127.0.0.1 指的是手機本身。bind-address: "*" 通常代表監聽所有介面,但開放範圍較大。若只需在家庭網路中共用,可綁定電腦目前的區域網路 IPv4 位址,再透過防火牆限制來源。

管理介面 external-controller 與混合連接埠是兩回事。手機使用代理不需要連線至控制器,更不需要將管理連接埠開放給整個網路。請勿將面板位址或常見的 9090 管理連接埠填入 Wi-Fi 的代理連接埠欄位。

三、電腦端設定:先確認位址,再開放監聽

1. 找出目前使用的區域網路 IPv4 位址

在 Windows 開啟終端機並執行 ipconfig,查看目前連線中的「無線區域網路介面卡 WLAN」或乙太網路介面卡。記下 IPv4 位址、子網路遮罩與預設閘道,略過未連線的網卡、虛擬機網卡及 TUN 虛擬網卡。在 macOS 可前往「系統設定」→「網路」→目前連線→「詳細資訊」→「TCP/IP」查看。

例如,電腦的位址是 192.168.1.10,手機是 192.168.1.25,兩者的遮罩都是 255.255.255.0,通常代表位於同一個子網路,但路由器的訪客網路隔離仍可能阻擋連線。電腦使用有線網路、手機使用 Wi-Fi 也能共用,重點是路由器允許兩者互相連線,不一定要使用相同的無線頻段。

2. 設定混合連接埠並允許區域網路連線

在用戶端設定中尋找「混合連接埠」或「Mixed Port」,記下目前的數值,再開啟「允許區域網路連線」或「Allow LAN」。不同用戶端的選單名稱可能不同;有些會將這些選項放在核心設定或覆寫設定中。請以最後套用的執行設定及實際監聽狀態為準,不要只看訂閱檔中的欄位。

以下是可合併至現有設定檔頂層的網路參數片段,並非完整訂閱內容。請保留原有的 proxies、proxy-groups 與 rules,不要用此片段覆寫整個檔案,也不要重複宣告相同名稱的頂層欄位。

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

儲存並套用設定;若用戶端提示需要重新啟動核心,請完成重啟。如果圖形介面用戶端會產生執行設定,請使用其持久化覆寫機制,避免下次更新訂閱時修改遺失。綁定特定位址後,若電腦更換網路或 DHCP 位址變更,監聽可能會失敗,請一併調整設定。

3. 確認連接埠確實正在監聽

在 Windows PowerShell 執行以下命令。結果中的 LocalPort 應為 7890,LocalAddress 應是指定的區域網路位址,或涵蓋該位址的監聽位址。若只顯示 127.0.0.1,區域網路中的其他裝置仍無法連線。

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

若沒有任何結果,請先檢查設定是否套用失敗、連接埠是否衝突,或核心是否未執行。若連接埠由其他程式使用,不能只憑連接埠號判定 Clash 已啟動。綁定區域網路位址後,如果本機系統代理仍指向 127.0.0.1:7890,也需要確認相容性;若確實需要同時服務回送位址與區域網路,可監聽所有介面,並嚴格限制防火牆允許的來源。

四、防火牆設定:限制連接埠、位址與可信任網路

成功監聽不代表其他裝置就能連入,電腦防火牆仍可能封鎖輸入連線。家庭網路可設為可信任的私人網路,但不要為了共用代理而任意將公共 Wi-Fi 改成私人網路,也不要關閉整台電腦的防火牆。

Windows:新增僅允許本機子網路的 TCP 輸入規則

確認目前網路為私人網路後,以系統管理員身分開啟 PowerShell。以下規則僅允許 192.168.1.0/24 存取本機 192.168.1.10 的 TCP 7890 連接埠,適用於本文的 HTTP 代理測試。

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

停止共用時,可刪除此規則:

Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"

如果電腦已有適用範圍較大的程式放行規則,也應檢查舊規則是否擴大了可存取範圍。上述窄範圍規則不會自動撤銷其他較寬鬆的許可。允許 TCP 連線也不代表手機遊戲或其他應用程式的 UDP 流量已可使用。

macOS 與 Linux:檢查實際提供代理服務的程序

  • macOS:前往「系統設定」→「網路」→「防火牆」→「選項」,檢查用戶端或核心程序是否允許輸入連線。若已啟用「阻止所有輸入連線」,請先確認其影響,不要只是不斷切換用戶端的開關。
  • Linux:若使用 UFW 且已啟用,可依實際子網路新增限制規則。其他防火牆工具也應遵循相同的最小開放範圍原則,避免同時疊加多套不明確的規則。
sudo ufw allow proto tcp from 192.168.1.0/24 to 192.168.1.10 port 7890

五、手機、平板與電視的設定方式

iPhone 與 iPad:設定目前 Wi-Fi 的 HTTP 代理

  1. 前往「設定」→「Wi-Fi」,點選目前網路右側的資訊按鈕。
  2. 找到「設定代理伺服器」,選擇「手動」。
  3. 「伺服器」輸入 192.168.1.10,「連接埠」輸入 7890。伺服器欄位不要加上 http://,也不要附加連接埠。
  4. 本文的基本設定未啟用代理驗證,因此請關閉「認證」;儲存後重新開啟瀏覽器測試。

這項設定只適用於目前的 Wi-Fi,不會自動套用至行動網路或其他 Wi-Fi 網路。若電腦關機,仍使用此代理設定的應用程式可能無法連線。離開共用情境後,請將「設定代理伺服器」改回「關閉」。

Android:編輯已連線網路的代理選項

常見路徑為「設定」→「網路和網際網路」→「網際網路」→目前的 Wi-Fi→編輯→「進階選項」→「代理伺服器」→「手動」。不同品牌的系統可能將入口放在「WLAN」→目前網路詳細資料中。主機名稱輸入 192.168.1.10,連接埠輸入 7890;若無明確需求,略過清單請維持預設值。

不要為了設定代理而順手改用靜態 IP。IP 取得方式與代理設定是不同項目;任意修改閘道或 DNS 容易引發其他問題。Android 應用程式是否遵循 Wi-Fi 代理設定,取決於其網路實作;瀏覽器能連線,不代表所有應用程式都會使用相同路徑。

電視:先確認系統是否支援手動 HTTP 代理

部分 Android TV 或 Google TV 裝置可在「設定」→「網路和網際網路」→目前網路→「代理設定」中選擇「手動」,並輸入相同的位址與連接埠。若裝置沒有此選項,或目標應用程式忽略系統代理設定,這種方式便無法直接套用至該應用程式。請勿將電腦位址填入電視的 DNS 欄位,兩者用途不同。

六、連線驗證:依序檢查連接埠、要求與規則

先用另一台電腦測試,更容易區分網路連線問題與手機應用程式相容性問題。Windows PowerShell 的連接埠測試只能確認 TCP 是否能建立連線,不能代表節點可用:

Test-NetConnection 192.168.1.10 -Port 7890

TcpTestSucceeded: True 表示 TCP 連線成功。接著送出明確指定代理的要求;在 Windows 使用 curl.exe,避免舊版 PowerShell 中同名的別名影響參數解析:

curl.exe --proxy http://192.168.1.10:7890 --connect-timeout 5 --max-time 15 -I https://example.com/

在 macOS 或 Linux 上,可將 curl.exe 改為 curl。收到目標網站的回應標頭後,再查看電腦用戶端的連線紀錄,確認目標網域、符合的規則與實際出口。HTTP CONNECT 顯示成功,只代表通道已建立,不能取代後續 TLS 連線及目標網站回應的檢查。

狀況優先檢查項目判斷依據
連線立即遭拒核心、監聽位址、連接埠號通常是沒有對應的監聽服務,或裝置主動拒絕連線
等待後逾時防火牆、訪客網路隔離、電腦進入睡眠要求可能遭到丟棄,或無法連至目標裝置
回應 HTTP 407代理驗證設定連接埠可連線,但要求未通過代理驗證
成功連線,但無法連到目標網站節點狀態、DNS、規則與記錄區域網路入口已連通,接著應檢查代理後續流程
瀏覽器正常,其他應用程式失敗應用程式是否遵循 HTTP 代理設定不能因此判定需要開放更多連接埠

如果所有要求都走直連,請先確認目前是否處於直連模式,再檢查規則順序與策略群組選擇。允許區域網路連線不會自動將規則模式改為全域代理。檢查網域名稱解析時,也應依實際要求路徑判斷:HTTP CONNECT 可將目標網域交由代理端處理,但應用程式可能另外在本機發起 DNS 查詢,因此手動設定代理不代表所有 DNS 查詢都由電腦接管。

七、安全範圍與長期使用檢查

家庭內部網路也應限制存取範圍。監聽所有介面時,電腦上的其他網卡也可能暴露相同連接埠;連上 VPN 或虛擬網路後,請重新檢查來源限制。此方案不需要在路由器設定對外連接埠轉送,也不應將 7890 或管理介面映射至網際網路。

  • 固定電腦位址:優先在路由器設定 DHCP 位址保留,避免電腦重新連線後位址改變,導致手機仍連向舊位址。
  • 視需要啟用驗證:Clash 系列核心可透過 authentication 設定 HTTP/SOCKS 驗證,但各裝置對代理驗證的支援程度不同。啟用後必須同步輸入帳號密碼,並透過 HTTP 407 等回應確認設定;驗證不能取代防火牆。
  • 維持控制器的存取界線:共用代理不需要遠端管理。管理介面僅開放給必要的裝置使用,並分別管理其驗證與防火牆規則。
  • 更新後重新檢查:訂閱更新、用戶端升級或網路切換後,請確認混合連接埠、允許區域網路連線、綁定位址與實際執行設定仍一致。
  • 停用時恢復設定:先關閉手機或電視的手動代理,再關閉電腦的區域網路共用及對應的防火牆許可,避免裝置繼續連線至已不存在的入口。