混合連接埠與 allow-lan 設定指南:將代理分享給區域網路裝置

說明 mixed-port 與獨立 HTTP/SOCKS 連接埠的差異、如何啟用 allow-lan 讓手機與電視盒子使用電腦代理,以及網卡綁定、驗證與安全界線的注意事項。

先分清 mixed-port、port 與 socks-port

mihomo 可以同時提供 HTTP、SOCKS5 與混合代理入口。它們最後都會將連線送入同一套代理規則與策略群組,但用戶端的連線入口不同。分享給區域網路裝置時,最省事的做法通常是開放一個 mixed-port:手機可將它填入 HTTP 代理連接埠,支援 SOCKS5 的應用程式也能連線到同一個連接埠,伺服器會辨識接入協定。

設定欄位 常用連接埠 接入協定 適用情境
mixed-port 7890 HTTP 與 SOCKS5 只想維護一個區域網路入口
port 7890 HTTP 系統代理、瀏覽器與電視盒子只提供 HTTP 代理欄位
socks-port 7891 SOCKS5 應用程式支援 SOCKS5,或需要其 UDP 能力
redir-port 7892 透明轉送入口 Linux 路由規則重新導向,不供手機手動填寫
tproxy-port 7893 TPROXY 入口 路由器透明代理並保留原始目標資訊

mixed-port 並不是將 HTTP 資料改寫成 SOCKS5,也不是額外建立一層轉送。它只會在同一個監聽連接埠上判斷用戶端的握手類型。對於「電腦執行 Clash,手機填寫電腦 IP 與連接埠」的情境,這能減少連接埠衝突與防火牆規則數量。

allow-lan 啟用了什麼

預設只監聽回環位址時,代理入口只能由執行 mihomo 的本機存取。allow-lan: true 允許區域網路裝置連入代理,但不會自動修改手機設定,也不會讓電腦變成預設閘道。用戶端仍需明確填寫代理伺服器位址,或交由路由器、透明代理規則接管流量。

以下是一份適合先行驗證的基本設定。假設電腦在家庭網路中的 IPv4 位址為 192.168.50.23,手機與電腦連線至同一台路由器,連接埠使用 7890

mixed-port: 7890
allow-lan: true
bind-address: "*"
mode: rule
log-level: info

authentication:
  - "livingroom:change-this-password"

bind-address: "*" 代表監聽可用位址,但實際可達範圍仍受作業系統防火牆、路由器訪客網路隔離與存取點用戶端隔離控制。若電腦長期使用固定區域網路位址,也可以將監聽位址縮限至指定網卡,例如:

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

authentication:
  - "phone:use-a-long-password"

綁定特定位址有助於明確劃定範圍,但 DHCP 重新分配位址後,mihomo 可能因該位址不再屬於本機而啟動失敗。長期分享時,可在路由器 DHCP 設定中為電腦網卡保留 192.168.50.23,或繼續監聽所有位址,再透過系統防火牆限制來源網段。

GUI 開關與 YAML 的關係

不同 Clash 圖形用戶端的命名略有差異,常見路徑是「設定」→「參數設定」→「允許區域網路連線」,同一區域通常也會顯示「混合連接埠」或「連接埠」。開啟開關後,應回到設定或執行記錄確認最終值為 allow-lan: true,並記下實際連接埠。部分用戶端重新載入訂閱時會保留全域參數,部分則以覆寫設定為準,不能只查看訂閱檔案中的欄位。

還要區分代理連接埠與控制連接埠。external-controller: 127.0.0.1:9090 用於面板或 API 控制,不是手機使用的 HTTP 代理。將 9090 填入手機代理欄位,通常只會得到連線失敗或 HTTP 狀態錯誤。

找出電腦在區域網路中的正確位址

手機端需要填寫電腦的區域網路位址,而不是 127.0.0.1,也不是電信業者分配的公網位址。127.0.0.1 在手機上只代表手機本身。家庭網路常見的位址範圍包括 192.168.0.0/1610.0.0.0/8172.16.0.0/12

Windows 11 查看位址

  1. 開啟「設定」→「網路和網際網路」。
  2. 選擇目前使用的「Wi-Fi」或「乙太網路」。
  3. 進入「硬體內容」,尋找「IPv4 位址」。
  4. 記下類似 192.168.50.23 的位址,不要抄寫預設閘道 192.168.50.1

也可以在終端機執行 ipconfig,查看目前連線網卡下的「IPv4 位址」。如果同時存在有線、無線、虛擬機與 VPN 網卡,應選擇與手機位於同一子網路的實體網卡。手機是 192.168.50.88 時,電腦通常也應是 192.168.50.x

macOS 查看位址

  1. 開啟「系統設定」→「網路」。
  2. 選擇狀態為「已連線」的 Wi-Fi 或乙太網路。
  3. 點選「詳細資訊」→「TCP/IP」。
  4. 查看 IPv4 位址,例如 192.168.50.23

手機與電視盒子的代理設定方法

iPhone 與 iPad

  1. 進入「設定」→「Wi-Fi」。
  2. 點選目前網路右側的資訊按鈕。
  3. 向下捲動至「設定代理伺服器」,選擇「手動」。
  4. 伺服器填寫電腦位址,例如 192.168.50.23
  5. 連接埠填寫 7890
  6. 設定 authentication 後,開啟驗證並填寫對應的使用者名稱與密碼。

iOS 的 Wi-Fi 手動代理主要是 HTTP 代理設定,並不等同於系統層級的 TUN。多數遵循系統代理的應用程式可以使用,但自行建立網路堆疊、忽略系統代理或只傳送 UDP 的應用程式,可能不會經過電腦。這也是瀏覽器可正常連線,但某個遊戲或串流應用程式仍直接連線的常見原因。

Android 與電視盒子

  1. 開啟「設定」→「網路和網際網路」→「網際網路」或目前的 Wi-Fi。
  2. 選擇編輯網路,展開「進階選項」。
  3. 將代理改為「手動」。
  4. 代理主機名稱填寫 192.168.50.23,代理連接埠填寫 7890
  5. 可依需求在排除清單中填寫區域網路網域,儲存後重新開啟應用程式測試。

Android 製造商的介面可能將入口放在「Wi-Fi」→「已連線網路」→「修改網路」。電視盒子若只提供「代理伺服器」與「代理連接埠」,同樣填寫電腦位址與混合連接埠。部分電視應用程式不遵循系統 HTTP 代理,此時只調整盒子的 Wi-Fi 代理,無法涵蓋全部流量。

若目標是讓遊戲、UDP、智慧電視應用程式與不讀取系統代理的程式統一分流,應將 mihomo 部署到主路由器或旁路由器,或在具備轉送設定的 Linux 主機上設定 TPROXY/TUN。單純將手機預設閘道改成電腦位址,而電腦未啟用 IP 轉送、NAT 與透明代理規則,不會自動形成可用連線。

分享後仍由電腦端規則決定出口

區域網路裝置連線至 mixed-port 後,請求會進入電腦上的 mihomo。訂閱中的節點、策略群組、DNS 設定與 rules 仍以電腦目前載入的設定為準。手機不需要重複匯入訂閱,也不能繞過電腦端的規則模式直接選擇節點。

例如設定處於 mode: rule 時,流量會依規則由上至下比對。區域網路位址通常應直連,避免存取路由器管理頁面、NAS 或投放裝置時被送往代理節點:

rules:
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
  - DOMAIN-SUFFIX,example.com,Proxy
  - MATCH,Proxy

如果設定啟用了 Fake-IP,手機透過 HTTP 代理存取網域時,網域通常會由代理端處理;但手機本身未經代理的 DNS 請求,仍會使用目前 Wi-Fi 的 DNS。遇到「網頁可以開啟,但應用程式內的網域解析異常」時,應先判斷該應用程式是否確實使用系統代理,而不是立即修改訂閱節點。

先進行一次可重複的驗證

  1. 先在電腦確認透過 127.0.0.1:7890 可以存取目標網站。
  2. 手機關閉行動數據,避免測試流量繞行至行動網路。
  3. 手機填入 192.168.50.23:7890 後,開啟一個先前未快取的網頁。
  4. 查看 Clash 連線清單,確認來源位址出現手機 IP,例如 192.168.50.88
  5. 檢查該連線命中的規則、策略群組與最終節點。

在同一個 Wi-Fi 下,手機到電腦的區域網路往返延遲通常應約為 1–10 ms。若持續高於 50 ms,先檢查無線訊號、2.4 GHz 頻段壅塞與電腦睡眠狀態。這項延遲只反映區域網路連線品質,不能代表代理節點的跨網路品質。

驗證、防火牆與監聽範圍

開放區域網路監聽,代表同一網路中能連到該連接埠的裝置都有機會發起連線。即使家庭成員裝置不多,也建議設定使用者名稱與高強度密碼,並使用作業系統防火牆限制來源。公司、宿舍、飯店等人員複雜的網路,不適合直接將代理監聽開放給整個網段。

mihomo 入站驗證

mixed-port: 7890
allow-lan: true
bind-address: "*"

authentication:
  - "phone:V7k9m2Qp4s8L"
  - "tvbox:R6w3n8Hx5c2A"

為不同裝置分配獨立帳號,停用某台裝置時只需刪除對應項目。密碼會寫入 YAML,因此應限制設定檔的本機讀取權限。若圖形用戶端會自動產生執行設定,應在其「覆寫」或「全域擴充設定」功能中維護這些欄位,避免更新訂閱後遺失。

系統防火牆只允許家庭網段

建立 Windows 防火牆入站規則時,可選擇 TCP、本機連接埠 7890,設定檔僅勾選「私人」,並在遠端 IP 位址中限制為 192.168.50.0/24。不要為了排查問題而長期關閉整個防火牆。macOS 使用第三方防火牆或 pf 時,也應依網段與連接埠條件放行。

mixed-port 的一般 HTTP 與 SOCKS TCP 接入至少需要 TCP 連接埠。若透過 SOCKS5 使用 UDP,還要確認用戶端能力、mihomo 的監聽設定與系統防火牆的 UDP 規則。電視盒子的 HTTP 代理通常不使用 SOCKS UDP,因此開放 TCP 7890 已足以完成基本網頁與應用程式驗證。

連線失敗的分層排查順序

第一層:確認 mihomo 確實正在監聽

先查看用戶端執行記錄與連接埠設定。Windows 可執行 netstat -ano | findstr :7890,macOS 或 Linux 可執行 lsof -nP -iTCP:7890 -sTCP:LISTEN。只看到 127.0.0.1:7890 時,表示服務仍限制於本機;看到 0.0.0.0:7890*:7890 或電腦的區域網路位址,才具備遠端接入條件。

第二層:檢查第二層網路與防火牆

  • 手機與電腦是否連線至同一個一般 Wi-Fi,而非訪客網路。
  • 電腦位址是否因 DHCP 更新而變更。
  • Windows 目前網路是否被識別為「公用網路」,導致私人網路放行規則未生效。
  • 路由器是否啟用了 AP 隔離、用戶端隔離,或阻斷不同 VLAN 之間的連線。
  • 連接埠是否被其他程序占用,導致 Clash 實際改用其他連接埠。

第三層:區分「連不上」與「規則走錯」

手機立即提示代理伺服器拒絕連線,通常是監聽位址、連接埠或防火牆問題;若能在 Clash 連線清單中看到請求,但網站逾時,則應繼續檢查節點、DNS 與規則命中結果。回傳 407 Proxy Authentication Required 表示代理已可連線,只是缺少使用者名稱或密碼,或填寫內容錯誤。

若只有個別應用程式失敗,可先以瀏覽器作為基準。瀏覽器成功,表示區域網路連線、HTTP 代理與驗證大致正常;失敗的應用程式可能不讀取系統代理、使用 QUIC/UDP,或具備自有網路設定。此時持續反覆切換 allow-lan 通常不會改變結果。

長期使用時的設定取捨

臨時讓一支手機連線至電腦時,使用 mixed-port: 7890allow-lan: true、驗證與區域網路防火牆規則即可。電腦應保持喚醒,Clash 用戶端也需要持續執行;電腦睡眠、切換 Wi-Fi 或退出核心後,下游裝置會立即失去代理連線。

如果多台電視、遊戲主機與 IoT 裝置都需要穩定分流,電腦分享會受到開關機、位址變更與應用程式代理相容性的限制。此時更適合讓路由器或旁路由器執行 mihomo,透過 TUN、REDIR 或 TPROXY 接管轉送,再依來源 IP、目標網域與規則集進行分流。混合連接埠仍可保留給需要手動指定代理的裝置,但不再作為整個家庭網路的唯一入口。

最後可將檢查整理為四項:代理連接埠必須與裝置填寫的值一致;allow-lan 與監聽位址必須允許遠端連線;作業系統防火牆只允許可信任網段;規則模式下為私有位址保留直連。逐項驗證,比一次修改連接埠、DNS、TUN 與訂閱更容易定位問題。

前往用戶端下載頁