一、共享的是代理入口,不是電腦的所有網路流量
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-port | 7890 | 同一個連接埠可接受 HTTP 與 SOCKS 代理連線;手機系統代理通常使用 HTTP。 |
allow-lan | true | 允許區域網路裝置連線代理,但仍受監聽位址、防火牆和核心存取控制限制。 |
bind-address | "*" | 允許綁定所有位址;需搭配防火牆限制來源,並確認實際監聽狀態。 |
mode | rule | 共享裝置的要求仍會依規則分流,不代表所有連線都固定經過遠端節點。 |
將欄位合併至目前設定,不要覆寫整份訂閱
# 區域網路共享相關欄位,並非完整訂閱
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 設定手動代理
- 前往「設定」→「Wi-Fi」,點選目前網路右側的資訊按鈕。
- 找到「設定代理伺服器」,選擇「手動」。
- 「伺服器」填入電腦的實際 IP,例如
192.168.1.20;「連接埠」填入7890。 - 若未設定代理認證,請勿啟用「認證」;儲存後使用 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 要求都經過電腦。
七、停止共享後的安全與復原檢查
家庭網路也可能連著訪客裝置。建議優先透過防火牆限制特定來源,必要時再啟用核心支援的代理認證。認證不能取代網路隔離,而且不同手機和電視對認證代理的支援程度不一。請勿在排錯截圖中公開訂閱網址、代理密碼或控制介面認證資訊。
- 切換網路前關閉共享:帶筆記型電腦前往飯店、公司或公共 Wi-Fi 前,請關閉 Allow LAN,並檢查範圍過大的防火牆授權。
- 使用完畢後還原裝置設定:將手機或電視的 Wi-Fi 代理改回「關閉」或「無」,避免電腦關機後,裝置仍嘗試連線至舊位址。
- 撤銷臨時放行規則:Windows 可執行下方命令,刪除本文建立的規則;Linux 則依照實際新增的內容刪除對應的 UFW 規則。
- 更新後重新確認:訂閱更新、客戶端升級或變更連接埠後,再次檢查執行中的設定與監聽狀態,避免介面顯示值和核心實際值不一致。
Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"
一套可重複檢查的共享流程應包括:固定電腦位址、核心監聽正確、允許可信任來源連線、裝置設定 HTTP 代理,以及連線記錄能說明最終流向。依照這個順序排查,比同時切換 TUN、全域模式和 DNS 設定更容易找出問題。若要進一步了解規則與網路堆疊,請參閱協定手冊;基礎概念可對照概念速查。