為什麼「本機正常,別台卻連不上」?

很多人第一次嘗試讓手機、平板或家裡另一台電腦共用筆電上的 Clash,會遇到一種很典型的現象:執行 Clash 的那台機器上網沒問題,但其他裝置把代理指到同一個 IP 與連接埠後,延遲測試永遠失敗、網頁打不開。這通常不是「節點壞了」,而是流量根本沒進到 Clash 的監聽埠

Clash 與以 mihomo 為核心的用戶端,預設為了安全,常把代理埠綁在 127.0.0.1(只接受本機連線)。在這種情況下,區網裡的其他裝置即使 IP 填對,封包也會被作業系統直接拒絕。另一個高頻原因是 Windows 防火牆 或第三方資安軟體攔截了入站連線;再來才是路由器開了 AP 隔離、訪客網路、或裝置其實不在同一個子網路。下面我們依「設定檔 → 本機監聽 → 防火牆 → 路由器與 Wi‑Fi」的順序排查,避免你在同一個環節繞圈。

先搞懂:埠、mixed-port、bind-address 與 allow-lan

port、socks-port 與 mixed-port

在 YAML 設定裡,port 一般是 HTTP 代理埠,socks-port 是 SOCKS5 埠。許多現代用戶端會提供 mixed-port:同一個埠同時接受 HTTP 與 SOCKS 連線,對手機與瀏覽器外掛來說最省事——你只要記一組「IP + 埠」即可。若你的設定裡只有 mixed-port,客戶端就填這個數字;若分開開了 HTTP 與 SOCKS,就要在另一台裝置上選對協定與對應埠號,兩者不要搞混。

bind-address 在決定「誰能連進來」

bind-address(或部分用戶端介面裡等效的「監聽位址」)控制代理服務綁在哪一張網路介面。常見寫法包括:

  • 127.0.0.1:僅本機可用,區網裝置無法連線——這是預設且較安全的做法。
  • 0.0.0.0:在所有 IPv4 介面上監聽,區網內其他裝置可透過你的區網 IP(例如 192.168.1.23)連入,前提是已開啟 allow-lan 且防火牆放行。

若你希望「只有區網能用、不要對外網卡暴露」,仍須搭配防火牆規則縮小來源範圍;單靠設定檔無法取代路由器或系統層的存取控制。

allow-lan:允許區域網路連入的官方開關

在 Clash/mihomo 中,allow-lan: true 代表允許非本機的內網裝置使用你開啟的代理埠。若維持 false,即使 bind-address 寫成 0.0.0.0,行為仍可能與預期不符(依版本與用戶端包裝方式略有差異)。實務上請把「開區網共用」想成兩件事一起完成:允許 LAN + 綁在可對內網監聽的位址

設定檔範例:給區網裝置用的最小組合

下面是一段示意(請把埠號改成你環境中沒有衝突的號碼),重點是 allow-lanbind-addressmixed-port 三者一致對齊:

# Minimal snippet for LAN clients (example)
mixed-port: 7890
bind-address: '*'
allow-lan: true
部分用戶端會在圖形介面提供「允許來自區域網路的連線」開關,本質上仍對應到 allow-lan 與監聽位址;若你改 YAML 後介面又覆寫,記得以實際執行中的設定為準。

改完設定後務必重啟核心或重新載入設定,再用下一節的方式在本機確認埠已對外監聽。

在本機確認:代理埠是否真的在聽?

以 Windows 為例,可在「命令提示字元」或 PowerShell 執行(將 7890 換成你的 mixed-port):

netstat -ano | findstr :7890

若你看到類似 0.0.0.0:7890 或本機區網 IP 上的 LISTENING,代表作業系統層已接受連線;若只有 127.0.0.1:7890,請回到 bind-address 與用戶端「僅本機」相關選項。macOS 可使用 lsof -iTCP:7890 -sTCP:LISTEN;Linux 可用 ss -lntp | grep 7890。這一步能先把「設定沒生效」與「純防火牆問題」分開。

Windows 防火牆:逐步放行入站連線

Windows 預設可能阻擋其他裝置連入你的代理埠。建議新增一條入站規則,只放行你使用的 TCP 埠(Clash 的 mixed/HTTP/SOCKS 皆為 TCP)。大綱如下:

  1. 開啟「具有進階安全性的 Windows 防火牆」。
  2. 選「輸入規則」→「新增規則」。
  3. 選「連接埠」→ TCP → 指定本機連接埠(例如 7890)。
  4. 允許連線,並勾選你實際使用的網路設定檔(私人網路較常見)。
  5. 命名規則(例如「Clash mixed-port 7890」)以便日後維護。
請在你信任的區域網路(例如自家 Wi‑Fi)使用此做法;在公共熱點開放代理埠有遭濫用與盜連風險。另請勿將 External Controller(常見 9090)對整個區網或外網開放。

若你安裝了第三方防毒或「網路強化」套件,可能還要在該軟體裡另建允許規則。完成後,可用手機在同一 Wi‑Fi 下以瀏覽器或測速工具連線測試;若仍失敗,先暫時關閉防火牆對照(僅作除錯、確認後應立即還原),可快速判斷是否為防火牆因素。

更完整的 Windows 安裝、系統代理與權限觀念,可一併參考站上的 Clash for Windows 使用教學,把用戶端層級的選項先釐清,再回來做區網共用。

手機、平板與另一台電腦:代理要怎麼填?

在分享端電腦上查區網 IP:Windows 可用 ipconfig 找「Wi‑Fi」或「乙太網路」底下的 IPv4;macOS 在「系統設定 → 網路」查看。假設分享端 IP 為 192.168.0.15mixed-port7890,則其他裝置的設定通常是:

  • HTTP 代理:主機 192.168.0.15,埠 7890
  • SOCKS5:同上主機與埠(若 App 分開詢問,選 SOCKS5)

iOS/Android 的「Wi‑Fi 代理」多半只支援 HTTP/HTTPS;若某 App 需要 SOCKS,可能要依賴該 App 內建代理欄位或系統級 VPN/TUN 類用戶端。若你追求的是「整機所有 App 都走 Clash」,在分享端開 TUN 只影響那一台機器;其他裝置仍須各自設定代理或使用熱點/另一種閘道方案,這點與 Clash TUN 模式指南 中「系統級接管僅限本機」的敘述一致,請勿混淆。

仍連不上?檢查路由器:AP 隔離與訪客網路

若防火牆已放行、netstat 也顯示對外監聽,手機卻還是連不上,下一個嫌疑是無線基地台的安全選項。許多家用路由器提供「AP 隔離」「用戶端隔離」「Wi‑Fi 隔離」等名稱的開關,開啟後同一 SSID 下的裝置彼此無法互連——你的代理埠再正確也無法從手機抵達筆電。請進路由器管理後台關閉該類隔離(若公司或公共網路強制開啟,則無法用區網共用代理)。

另一個常見坑是手機連在「訪客 Wi‑Fi」、電腦連在「主要 Wi‑Fi」,兩者 VLAN 不同,預設不能互訪。請確認兩邊顯示的 IP 位於同一個網段(例如都是 192.168.1.x),且預設閘道相同。雙頻路由器若分成兩個 SSID,一般仍在同一區網,但若你用了訪客網或 IoT 專用 SSID,就要特別留意後台說明。

安全提醒:區網共用與 External Controller

開放代理埠給區網,等同允許同一網段內的裝置把你的機器當閘道使用;請只在信任的人與信任的網路環境下使用。與此分開的是 external-controller(REST API):它可切換節點、讀取設定,風險更高。不要為了「遠端調試方便」而把它綁在 0.0.0.0 且無密碼保護。建議維持本機 127.0.0.1,必要時再用 SSH 通道或內網受限管理。

macOS 與 Linux 簡述

macOS 若開啟防火牆,可能需要在「系統設定 → 網路 → 防火牆」中允許你的 Clash 用戶端接受連入連線。Linux 則依發行版使用 firewalldufw 等工具放行對應 TCP 埠;若你使用桌面環境內建的安全精靈,邏輯與 Windows 類似——先確認行程有在聽,再處理封包過濾。

總結:區網共用 Clash 的檢查清單

依序完成下列項目,大多數「手機連不上本機 Clash」都能排除:(1) allow-lan: true(2) bind-address 允許區網連入,且重載設定;(3)netstatss 確認埠在 0.0.0.0 或區網介面上 LISTEN;(4) 系統防火牆與防毒放行該 TCP 埠;(5) 路由器未開 AP 隔離、裝置未分屬訪客網;(6) 客戶端填的是分享端區網 IP 與正確埠,協定與 mixed/分離埠一致。

相較於每台裝置各自安裝用戶端,讓桌機長駐 Clash、其他裝置以代理方式接入,在特定家庭或小型辦公場景裡負擔較小;但維護防火牆與信任邊界仍是你的責任。若你希望各平台都有一致體驗、並減少手動填 IP 的麻煩,也可改為每台裝置安裝適合的 Clash 用戶端,透過訂閱同步節點與規則。

我們提供的 Clash 用戶端在 Windows、macOS 與行動平台上皆注重設定清晰度與穩定性,無論你選擇「單機分享」或「多機各裝」,都能較快進入可用狀態。若你準備好把環境一次架好,歡迎直接從本站取得安裝包與對應教學。

→ 立即免費下載 Clash,開啟流暢上網新體驗