一、共享的是代理入口,不是電腦的所有網路流量

Clash 區域網路共享的常見用法,是讓電腦執行代理核心,再讓同一個網路中的手機或電視連上電腦的 HTTP 代理連接埠。裝置會將支援代理的要求傳送到電腦,再由核心依照目前的規則、策略群組與節點處理連線。電腦必須保持開機,Clash 核心也必須持續執行。

這和把電腦設成路由器不同。手機設定 Wi-Fi 代理後,不代表所有 App、所有通訊協定都會經過電腦;App 仍須遵循系統代理設定。遊戲的 UDP、部分影音 App 使用的獨立網路堆疊,以及自行建立連線的服務,都可能繞過這個代理入口。

開始前請準備以下三項資訊

  • 電腦的區域網路 IPv4 位址:下文以 192.168.1.20 為例,實際設定時請改用電腦目前的位址。
  • 代理監聽連接埠:下文統一使用 7890,實際設定請以客戶端顯示的 Mixed 或 HTTP 連接埠為準。
  • 可正常使用的電腦端設定:先確認電腦透過該代理連接埠能存取目標網站,再進行區域網路共享設定。

電腦可以使用有線網路,手機則連接 Wi-Fi,兩者不必使用相同的連線方式;關鍵是路由器允許裝置彼此連線。訪客 Wi-Fi、無線用戶端隔離、企業 VLAN 都可能阻斷連線。同一個 Wi-Fi 名稱也不保證裝置之間可以互相連線。

二、設定 allow-lan、mixed-port 與綁定位址

在以 Clash 或 Clash Meta(現名 mihomo)為核心的客戶端中,通常可以找到「允許區域網路連線」或「Allow LAN」開關,對應核心設定中的 allow-lan。不同圖形介面的選單名稱和設定覆寫方式各異,應一併檢查實際執行中的設定,不要只看訂閱檔案裡的欄位。

欄位範例值用途與檢查項目
mixed-port7890同一個連接埠可接受 HTTP 與 SOCKS 代理連線;手機系統代理通常使用 HTTP。
allow-lantrue允許區域網路裝置連線代理,但仍受監聽位址、防火牆和核心存取控制限制。
bind-address"*"允許綁定所有位址;需搭配防火牆限制來源,並確認實際監聽狀態。
moderule共享裝置的要求仍會依規則分流,不代表所有連線都固定經過遠端節點。

將欄位合併至目前設定,不要覆寫整份訂閱

# 區域網路共享相關欄位,並非完整訂閱
mixed-port: 7890
allow-lan: true
bind-address: "*"
mode: rule

這段內容沒有節點、策略群組和規則,不能當成完整設定匯入。請在客戶端支援的持續性覆寫或合併設定位置修改,並保留原有設定。直接編輯下載的訂閱檔案,可能會在下次更新訂閱時被覆寫。儲存後,依照客戶端的要求重新載入設定或重新啟動核心。

127.0.0.1 僅供本機存取;如果實際監聽位址仍是 127.0.0.1:7890,手機就無法連線。也可以將綁定位址縮小為電腦的區域網路位址,但請注意:只綁定 192.168.1.20 後,電腦上仍連線至 127.0.0.1:7890 的程式可能會失效。若使用萬用綁定位址,就必須透過防火牆限制可信任的來源。

如果設定只有 port 和 socks-port,手機的 HTTP 代理應填入 port 對應的連接埠,而不是 SOCKS 連接埠。HTTPS 網站通常會透過 HTTP 代理的 CONNECT 通道存取,不必因此安裝額外憑證。

三、找出正確的電腦 IP,確認核心確實正在監聽

Windows:查看實體網卡,再檢查 7890 連接埠

在 PowerShell 中執行以下兩個命令。第一個查詢位址,第二個查詢監聽狀態。請選擇目前連線使用的「乙太網路」或「無線區域網路介面卡 WLAN」,避開 TUN、虛擬機器、容器等虛擬網卡。

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

如果電腦的 Wi-Fi IPv4 位址是 192.168.1.20,手機的代理伺服器就填入這個位址。監聽位址為 0.0.0.0 通常代表所有 IPv4 介面;若看到 ::,還需配合系統的 IPv6 與雙堆疊行為檢查,不能只憑這一行就認定 IPv4 已可連線。

macOS 與 Linux:分辨位址和監聽狀態

在 macOS 中,可前往「系統設定」→「網路」→目前的連線→「詳細資訊」→「TCP/IP」查看 IP,再透過終端機檢查監聽程序:

lsof -nP -iTCP:7890 -sTCP:LISTEN

Linux 可使用以下命令查看介面的 IPv4 位址與監聽狀態;部分程序資訊需要管理員權限才能顯示:

ip -4 addr show
ss -lntp 'sport = :7890'

手機端不可填入 localhost、127.0.0.1、0.0.0.0 或路由器的預設閘道。前兩者指向手機本身,第三個是監聽用的萬用位址,預設閘道通常是路由器,以上都不是電腦代理的連線位址。建議在路由器的 DHCP 設定中為電腦保留位址,避免重新啟動後 IP 改變。

四、透過防火牆僅允許可信任的區域網路來源

「允許區域網路」控制核心是否接受連線,作業系統防火牆則決定連線能否抵達核心。排查問題時不要長時間關閉整個防火牆,也不要在路由器上將 7890 設為對外連接埠轉送。如果系統已有範圍過大的應用程式允許規則,也應檢查並縮小範圍;新增一條限制規則,不會自動撤銷其他寬鬆的授權。

Windows:僅允許專用網路使用 TCP 7890

僅在可信任的家庭網路中,將目前的連線設為「私人」。Windows 11 的 Wi-Fi 設定路徑通常是「設定」→「網路和網際網路」→「Wi-Fi」→目前連線的內容→「網路設定檔類型」。接著在系統管理員 PowerShell 中新增規則:

New-NetFirewallRule `
  -DisplayName "Clash LAN TCP 7890" `
  -Direction Inbound `
  -Action Allow `
  -Protocol TCP `
  -LocalPort 7890 `
  -Profile Private `
  -RemoteAddress LocalSubnet

此規則只會在私人網路設定檔下生效,允許本機子網路來源連線至 TCP 7890。如果只需要讓一支固定 IP 的手機連線,可以將 LocalSubnet 改成手機的實際 IP,例如 192.168.1.30。本文使用 HTTP 代理,不必另外開放 UDP 7890。

macOS 與 Linux:依目前使用的防火牆機制設定

在 macOS 中,可前往「系統設定」→「網路」→「防火牆」→「選項」,確認實際接收連線的客戶端或核心程式是否遭到封鎖。客戶端升級或更換核心檔案後,也可能需要重新確認授權。

如果 Linux 已啟用 UFW,且家庭子網路確實是 192.168.1.0/24,可依照下例放行。請勿照抄錯誤的網段,也不要在遠端維護伺服器時,未經評估就啟用或重設防火牆。

sudo ufw allow from 192.168.1.0/24 to any port 7890 proto tcp
sudo ufw status numbered

五、在手機和電視上設定 HTTP 代理

iPhone 與 iPad:為目前的 Wi-Fi 設定手動代理

  1. 前往「設定」→「Wi-Fi」,點選目前網路右側的資訊按鈕。
  2. 找到「設定代理伺服器」,選擇「手動」。
  3. 「伺服器」填入電腦的實際 IP,例如 192.168.1.20;「連接埠」填入 7890。
  4. 若未設定代理認證,請勿啟用「認證」;儲存後使用 Safari 測試網頁。

伺服器欄只填位址,不要加上 http://,也不要附加 :7890。這項設定只適用於目前的 Wi-Fi;切換到行動網路或其他 Wi-Fi 後,不能假設連線路徑仍相同。

Android:在目前網路的進階設定中填寫

不同品牌的選單位置略有差異。常見路徑是「設定」→「網路和網際網路」→「網際網路」→目前的 Wi-Fi→編輯→「進階選項」→「代理」→「手動」。部分裝置需要先點開網路詳細資訊,再進入編輯模式。

  • 代理主機名稱:電腦 IP,例如 192.168.1.20。
  • 代理連接埠:7890。
  • 略過代理的位址:初次測試時可保留預設值或留白,確認可用後再依需求設定例外。

Android 系統代理不保證所有 App 都會遵循。若瀏覽器可用、特定 App 卻無法使用,請先確認該 App 是否支援系統 HTTP 代理,不要馬上修改訂閱或重新安裝客戶端。部分 Android 設定介面也沒有帳號和密碼欄位,啟用代理認證前,請先確認裝置能完成認證。

電視與電視盒:先找代理設定,不要修改預設閘道

Android TV 或電視品牌的系統可能會在「設定」→「網路和網際網路」→目前的網路→「代理設定」中提供「手動」選項。填入電腦 IP 與 HTTP 連接埠即可。有些型號只會在特定網路下顯示此選項,也有裝置完全不支援。

如果找不到代理選項,不要隨意將電腦 IP 填進「閘道」或「DNS」欄位。閘道轉送、DNS 解析和 HTTP 代理是不同功能;若要採用閘道方案,還需額外設定路由、轉送和存取控制,並非只換一個位址就能完成。即使電視支援系統代理,特定影音 App 也可能不使用它。

六、依照「連接埠 → 要求 → 規則」驗證共享結果

先在另一台區域網路電腦上測試,通常比直接從電視 App 判斷更容易。Windows 可檢查 TCP 是否連線:

Test-NetConnection 192.168.1.20 -Port 7890

TcpTestSucceeded: True 只能證明 TCP 連線已建立,不代表代理認證、節點或流量分流都正常。接著使用 curl 傳送明確透過代理的 HTTPS 要求;在 Windows PowerShell 中建議使用 curl.exe,避免舊版環境的命令別名造成干擾。

curl --proxy http://192.168.1.20:7890 --connect-timeout 5 --max-time 20 -I https://example.com/

此處的 5 秒是連線逾時上限,20 秒是整個命令的執行時間上限,並非效能測試結果。HTTPS 代理可能會先輸出 200 Connection established,還要繼續查看目標網站的最終回應。接著開啟 Clash 的「連線」或記錄頁面,確認要求來源、目標網域、符合的規則和最終策略。

現象優先檢查項目處理方式
連線逾時電腦 IP、防火牆、訪客網路隔離確認裝置能互相連線,並檢查輸入連線規則和網路設定檔。
連線遭拒連接埠是否正在監聽、核心是否執行中確認實際連接埠和監聽位址,並重新載入設定。
收到 HTTP 407代理要求認證在支援認證的客戶端中輸入正確的認證資訊。
網頁可用,部分 App 失敗App 是否遵循系統代理設定確認 App 支援的代理功能,並區分 HTTP 要求和 UDP 流量。
可以連線,但出口沒有改變符合 DIRECT 或其他策略查看連線詳細資訊和規則順序,不要只看模式開關。
電腦進入睡眠後,所有連線都中斷主機與核心是否在線在可信任的使用情境下調整電源設定,或停止共享。

在規則模式下,符合 DIRECT 的連線會由電腦直接存取目標;只有符合代理策略的連線才會經過對應節點。因此,手機看到的公開出口取決於要求符合的策略,不一定和電腦上所有 App 相同。DNS 的實際路徑也會受到 App、代理協定及核心設定影響,不能只憑瀏覽器能開啟網頁,就判定裝置的所有 DNS 要求都經過電腦。

七、停止共享後的安全與復原檢查

家庭網路也可能連著訪客裝置。建議優先透過防火牆限制特定來源,必要時再啟用核心支援的代理認證。認證不能取代網路隔離,而且不同手機和電視對認證代理的支援程度不一。請勿在排錯截圖中公開訂閱網址、代理密碼或控制介面認證資訊。

  1. 切換網路前關閉共享:帶筆記型電腦前往飯店、公司或公共 Wi-Fi 前,請關閉 Allow LAN,並檢查範圍過大的防火牆授權。
  2. 使用完畢後還原裝置設定:將手機或電視的 Wi-Fi 代理改回「關閉」或「無」,避免電腦關機後,裝置仍嘗試連線至舊位址。
  3. 撤銷臨時放行規則:Windows 可執行下方命令,刪除本文建立的規則;Linux 則依照實際新增的內容刪除對應的 UFW 規則。
  4. 更新後重新確認:訂閱更新、客戶端升級或變更連接埠後,再次檢查執行中的設定與監聽狀態,避免介面顯示值和核心實際值不一致。
Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"

一套可重複檢查的共享流程應包括:固定電腦位址、核心監聽正確、允許可信任來源連線、裝置設定 HTTP 代理,以及連線記錄能說明最終流向。依照這個順序排查,比同時切換 TUN、全域模式和 DNS 設定更容易找出問題。若要進一步了解規則與網路堆疊,請參閱協定手冊;基礎概念可對照概念速查。