一、先確認共享方式:由裝置主動連線至電腦代理

最直接的方式是讓電腦執行 Clash 或以 Clash Meta(mihomo)為核心的用戶端,並開啟區域網路連線。手機與電腦連上同一個家用網路後,在手機的 Wi-Fi 代理設定中輸入電腦的區域網路 IPv4 位址及混合連接埠。電腦必須保持開機且用戶端持續執行;手機上支援代理的連線便會送到電腦核心,再依照電腦目前的規則與策略群組轉送。

本文範例使用電腦位址 192.168.50.10、家用子網路 192.168.50.0/24 和混合連接埠 7890。這些都是示範值,實際設定時請改用自己的網路資訊。手機端不要填入 127.0.0.1:這個位址指向手機本身,不是電腦。

  1. 先在電腦確認訂閱已啟用、策略群組已選取可用節點,並確認電腦瀏覽器能正常開啟目標網站。
  2. 確認手機和電腦沒有連上訪客網路,也未啟用無線用戶端隔離。連上相同的 Wi-Fi 名稱,不代表裝置之間一定能互相連線。
  3. 記下電腦目前使用的網卡位址。有線連接的電腦也能與使用 Wi-Fi 的手機共享代理,前提是路由器允許兩者互通。

二、mixed-port、allow-lan 與綁定位址各自的用途

混合連接埠將 HTTP 代理與 SOCKS5 代理入口整合在同一個連接埠,核心會根據連線交握判斷所使用的協定。這並非將所有網路協定轉換為 HTTP,也不是路由器的連接埠轉送。手機選擇 HTTP 代理時可填入 7890;支援 SOCKS5 的應用程式也能連上同一個連接埠,但必須在應用程式中選擇正確的代理類型。

設定項目用途本文範例
mixed-portHTTP 與 SOCKS5 共用的連入連接埠7890
allow-lan允許其他裝置連線至代理監聽入口true
bind-address指定接受連線的本機位址192.168.50.10
mode決定流量進入核心後的分流方式rule
authentication為 HTTP 與 SOCKS 連入連線設定帳號密碼建議為支援驗證的裝置設定

allow-lan: true 只是允許區域網路連線的必要設定之一。若實際監聽位址仍只有 127.0.0.1,或系統防火牆封鎖連入連線,手機依然無法連線。反之,監聽所有介面也不代表可以放心開放連接埠,仍須同時限制網路範圍。

傳統的 port 通常是 HTTP 代理連接埠,socks-port 則是獨立的 SOCKS 連接埠。使用混合連接埠後,無須為了共享代理再開啟兩組入口。若多個設定項目使用同一連接埠而出現位址占用錯誤,請移除重複的監聽設定,或為不同入口指定不同連接埠。

三、修改實際生效的設定,確認連接埠確實啟用

先備份設定,再修改頂層欄位

請先備份目前的設定。若圖形介面用戶端的「設定」中有「允許區域網路連線」或「Allow LAN」開關,可優先使用;不同用戶端的選單層級及中文名稱可能不同。重點是確認最終生效的設定,而不只是查看開關狀態。若訂閱由用戶端管理,請優先使用內建的覆寫、合併或持久化設定功能,避免手動修改被訂閱更新覆蓋。

以下欄位應合併至現有設定的頂層,並非完整的訂閱內容。原有節點、策略群組、規則及 DNS 設定都要保留。YAML 請使用空格縮排,不要使用定位字元,也不要在同一層重複設定 mixed-port。

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

綁定特定區域網路位址可以縮小監聽範圍,但該位址必須確實配置在電腦上。建議在路由器的 DHCP 設定中為電腦保留固定租約,否則位址變更後可能導致啟動失敗。若要保留電腦原有的本機迴送代理入口,可考慮使用 bind-address: '*',並透過防火牆精確限制來源;修改後仍須測試本機代理是否正常。

重新載入後確認監聽狀態

儲存設定後,依照用戶端提供的方式重新載入;若監聽參數沒有更新,再重新啟動核心。Windows 可使用 PowerShell 檢查 TCP 監聽狀態;macOS 和 Linux 則可使用各自的系統工具:

# Windows PowerShell
Get-NetTCPConnection -LocalPort 7890 -State Listen

# macOS
lsof -nP -iTCP:7890 -sTCP:LISTEN

# Linux
ss -lntp 'sport = :7890'

預期結果應顯示電腦的區域網路位址或通配監聽位址,而不應只有 127.0.0.1:7890。若完全沒有結果,請先查看核心記錄,確認是否有連接埠占用、位址不存在或設定解析錯誤。部分系統只會向管理員顯示處理程序資訊,必要時請以管理員權限查看;不要直接關閉防火牆來測試。

四、只允許可信任區域網路通過防火牆

HTTP 代理與 HTTPS CONNECT 通道都需要先建立 TCP 連線。若只用手機瀏覽網頁,先允許 TCP 7890 即可,無須一開始就開放 UDP。SOCKS5 的 UDP 轉送還取決於用戶端是否支援 UDP ASSOCIATE、核心能力及實際節點連線;不能只因為已啟用混合連接埠,就認定遊戲 UDP 一定可用。

Windows:限制網路設定檔與來源網段

先到「設定」→「網路和網際網路」,開啟目前連線的內容,僅在可信任的家用網路上將網路設定檔設為「私人」。接著使用系統管理員 PowerShell 新增以下規則。範例中的本機位址和遠端子網路都必須依實際情況修改:

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

已安裝的安全性軟體也可能有獨立的防火牆規則。若系統防火牆已允許連線但仍逾時,請查看安全性軟體的網路防護記錄。不要用「所有連接埠、所有來源、所有網路」這類寬鬆規則來取代問題排查。停止共享後,可以刪除本文建立的規則:

Remove-NetFirewallRule -DisplayName "Clash LAN TCP 7890"

macOS 與 Linux:確認實際監聽的處理程序

macOS 可前往「系統設定」→「網路」→「防火牆」→「選項」,檢查應用程式的傳入連線權限;較舊版本的設定入口可能在「安全性與隱私權」。代理監聽有時是由獨立的核心處理程序負責,應搭配監聽結果及系統提示確認,不要只允許用戶端介面程式。

Linux 若使用 UFW,可依來源子網路新增規則。未使用 UFW 的系統應改用目前實際管理防火牆的工具,不要為了照抄指令而同時啟用另一套防火牆管理工具。

sudo ufw allow from 192.168.50.0/24 to 192.168.50.10 port 7890 proto tcp

五、手機、電視與遊戲主機的設定方式

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

  1. 開啟「設定」→「Wi-Fi」,點選目前網路右側的資訊按鈕。
  2. 找到「設定代理伺服器」,選擇「手動」。伺服器輸入 192.168.50.10,連接埠輸入 7890。
  3. 若核心已設定帳號密碼,請開啟「認證」並輸入相應資訊。儲存後重新開啟瀏覽器測試。

伺服器欄位只需輸入 IP 位址,不要填成 http://192.168.50.10:7890。這項設定只適用於目前的 Wi-Fi,不會自動套用至行動網路,也不是系統層級的 VPN。瀏覽 HTTPS 網站時,一般 HTTP 代理會透過 CONNECT 建立通道,無須因此安裝根憑證;若出現憑證警告,請先檢查系統時間、網站憑證及網路環境。

Android:修改目前已連線 Wi-Fi 的代理設定

常見路徑為「設定」→「網路和網際網路」→「網際網路」→目前的 Wi-Fi→「修改」→「進階選項」→「代理」→「手動」。部分廠牌的系統會將選項放在網路詳細資料頁面。代理主機名稱填入 192.168.50.10,代理連接埠填入 7890。只測試共享功能時,先不要新增略過清單,以免排除目標網域。

部分 Android 系統的 Wi-Fi 手動代理頁面沒有帳號密碼欄位,此時無法直接套用需要驗證的設定。請改用支援驗證的應用程式代理功能,或在可信任且隔離的家用網路中,搭配嚴格的防火牆規則評估共享方式。若應用程式不遵循系統 HTTP 代理,修改此頁面也無法強制讓它使用代理。

電視與遊戲主機:先確認裝置是否提供代理設定

若電視的瀏覽器或網路設定提供 HTTP 代理,可輸入相同的位址與連接埠。支援 SOCKS5 的播放器則應在應用程式內選擇 SOCKS5。遊戲主機的 HTTP 代理設定通常只影響部分系統服務或下載流程,不代表連線對戰、語音聊天及 NAT 類型也會改變。

若要讓整台裝置的 TCP、UDP 流量都經過代理,通常需要在路由器端設定透明代理,或規劃完整的閘道方案,並處理轉送、路由、DNS 及回程路徑。只把遊戲主機的閘道改成電腦 IP,或只在電腦啟用 TUN,都不是完整方案。若不熟悉相關網路設定,建議先使用應用程式明確設定的代理功能。

六、從連線記錄分辨連接埠、驗證與規則問題

測試時一次只調整一個變數:先維持電腦的規則模式與節點不變,從另一台裝置測試連接埠,再測試代理請求,最後查看核心連線記錄。以下指令中的網域僅用來示範連線測試;網站能開啟不代表流量一定經過代理節點,還須確認實際命中的規則。

# 在另一台 Windows 裝置上檢查 TCP 連線
Test-NetConnection 192.168.50.10 -Port 7890

# 測試 HTTP 代理;在 Windows PowerShell 中可明確呼叫 curl.exe
curl --proxy http://192.168.50.10:7890 --connect-timeout 5 -I https://example.com/

# 測試 SOCKS5,目標網域交由代理端解析
curl --proxy socks5h://192.168.50.10:7890 --connect-timeout 5 -I https://example.com/
狀況優先檢查項目下一步
TCP 連線逾時位址錯誤、網段隔離或防火牆封鎖確認網卡位址與來源網段規則
連線遭拒沒有監聽、連接埠錯誤或處理程序已結束檢查監聽清單與核心記錄
HTTP 回應 407代理要求驗證確認裝置是否支援驗證,並填入帳號密碼
有連線記錄,但無法開啟目標網站節點、規則、DNS 或目標服務查看命中的規則、策略群組及錯誤詳情
瀏覽器能用,但遊戲不能用應用程式略過代理或依賴 UDP確認應用程式是否支援代理,不要反覆切換連接埠

HTTP 測試出現 200 Connection established,只代表代理接受了 CONNECT 請求;還要確認後續 TLS 交握與目標伺服器回應是否成功。在連線面板依手機來源位址篩選,確認目標網域、符合的規則及最終出口。共享流量仍受電腦的規則模式控制;若命中 DIRECT 而直接連線,屬於預期行為,不代表區域網路共享失效。

DNS 也要依應用程式的連線方式判斷:HTTP 代理通常會收到目標主機名稱;socks5h 會明確交由代理端解析目標網域,而 socks5 的常見用法則可能先在請求端解析。Wi-Fi 手動代理不會將手機所有 DNS 查詢都改由電腦處理。除非已另外設定並確認 DNS 監聽及相應防火牆規則,否則不要為了這個範例直接將手機 DNS 指向電腦。

七、驗證、休眠與停止共享的檢查清單

即使在可信任的網路中,也建議為支援驗證的裝置設定專用帳號。HTTP 與 SOCKS 驗證不代表區域網路中的這段連線已加密,也不要重複使用重要服務的密碼。以下數值僅供示範語法,實際使用前請改成獨立的隨機密碼,並確認裝置確實支援驗證:

authentication:
  - "lan-device:ChangeThisLocalPass7890"
  • 檢查略過驗證的設定:若設定中有 skip-auth-prefixes,請確認沒有將整個共享網段排除;否則不能只因為設定了帳號密碼,就認定驗證已生效。
  • 保持位址固定:為電腦保留 DHCP 租約。更換路由器、切換網路或重新撥號後,請重新確認位址及防火牆範圍。
  • 留意睡眠狀態:電腦進入睡眠、闔上筆電上蓋或核心結束執行後,仍指向該代理的手機可能無法上網。請先確認電腦狀態,不要急著重設手機網路。
  • 停止共享:先將手機的「設定代理伺服器」改回「關閉」,Android 則改回「無」,再關閉用戶端的區域網路連線功能並移除專用的防火牆允許規則。

設定完成後,應能明確回答三個問題:哪台裝置正在監聽、哪些來源可以連線,以及請求進入核心後會套用哪條規則。分開檢查這三個層面,混合連接埠共享就不必靠反覆切換全域模式、重新安裝用戶端或關閉整套防火牆來碰運氣。更多核心與分流設定請參閱進階設定;第一次匯入訂閱,請從入門指南開始。