先分清三類授權:系統代理伺服器、輔助服務與網路延伸功能
macOS 客戶端中的「設為系統代理伺服器」「安裝服務模式」「啟用 TUN」不是同一個開關。它們使用的系統功能不同,出現的彈窗也不同。若混在一起處理,常見結果是網路延伸功能已獲准,卻仍無法修改代理伺服器;或系統代理伺服器已生效,卻重複安裝 TUN 服務。
| 功能 | 系統動作 | 常見授權 | 適用範圍 |
|---|---|---|---|
| 系統代理伺服器 | 寫入 HTTP、HTTPS 與 SOCKS 代理伺服器 | 可能要求管理員密碼或輔助服務權限 | 遵循 macOS 代理伺服器設定的 App |
| 服務模式 | 安裝高權限輔助程序 | 管理員帳戶密碼 | 穩定修改系統代理伺服器、啟動核心或接管網路 |
| TUN 模式 | 建立虛擬網路介面並調整路由 | VPN 設定、網路延伸功能或輔助服務授權 | 不讀取系統代理伺服器設定的 App 與部分命令列流量 |
| 鑰匙圈存取 | 讀取已儲存的權杖、訂閱憑證或服務金鑰 | 目前的 macOS 登入密碼 | 僅對應彈窗中列出的鑰匙圈項目 |
以下以常見的 Clash Verge Rev 2.x、ClashX.Meta 1.4.x,以及採用 mihomo 核心的 macOS 客戶端為例。介面名稱可能顯示為「系統代理伺服器」「Service Mode」「Clash Core」「TUN Mode」或「增強模式」,實際功能不一定完全相同。安裝時應按需求逐項啟用,不必為了完成安裝一次核准所有功能。
首次啟動的正確順序
第一步:將 App 放入「應用程式」資料夾
下載完成後開啟 DMG,將客戶端拖曳到「應用程式」,再從 Finder 的「應用程式」資料夾啟動。不要長期從 DMG 映像檔、下載項目或解壓縮後的暫存資料夾執行。App 路徑變更會影響登入項目、輔助服務與鑰匙圈存取控制;升級後反覆出現彈窗,通常與路徑或程式碼簽章變更有關。
- 在 Finder 中開啟下載的 DMG 或壓縮檔。
- 將 App 拖曳到「應用程式」。
- 退出安裝映像檔,並關閉仍在執行的舊版本。
- 從「應用程式」中開啟客戶端。
- 確認選單列或 Dock 中只有一個客戶端執行個體。
如果 macOS 提示 App 來自網際網路,確認檔案來源與 App 名稱後選擇「開啟」。若系統直接阻止啟動,可前往「系統設定」→「隱私權與安全性」,在安全性區域找到剛才遭阻止的 App,選擇「仍要開啟」。舊版 macOS 12 Monterey 的路徑為「系統偏好設定」→「安全性與隱私」→「一般」。
第二步:匯入設定並確認本機連接埠
在客戶端的「設定」或「Profiles」頁面匯入訂閱,等待設定解析完成,再選擇策略群組中的節點。mihomo 設定中常見的混合連接埠是 7890,SOCKS 連接埠可能是 7891,外部控制連接埠常見為 9090;這些只是常用預設值,仍應以目前設定檔與客戶端設定頁顯示的數值為準。
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
如果其他代理工具已佔用 7890,Clash 核心通常會啟動失敗或不斷重新啟動。退出其他代理 App 後,可在終端機檢查連接埠佔用情況:
lsof -nP -iTCP:7890 -sTCP:LISTEN
lsof -nP -iTCP:9090 -sTCP:LISTEN
第三步:先啟用系統代理伺服器
開啟客戶端中的「系統代理伺服器」開關。部分客戶端首次執行時會要求安裝輔助服務,並顯示管理員認證視窗。此處輸入的是目前 Mac 管理員帳戶的密碼,不是 Apple ID 密碼。輸入時視窗通常不會顯示字元數量,這是 macOS 權限驗證的正常行為。
啟用後可透過終端機確認目前網路服務的代理伺服器狀態。無線網路服務通常名為 Wi-Fi,部分舊版系統或自訂環境可能顯示其他名稱:
networksetup -getwebproxy Wi-Fi
networksetup -getsecurewebproxy Wi-Fi
scutil --proxy
輸出中的 Enabled: Yes、伺服器位址 127.0.0.1 與客戶端連接埠一致,表示系統代理伺服器已寫入。此時瀏覽器仍無法連線,應優先檢查節點、規則與 DNS,不要繼續重複安裝網路延伸功能。
macOS 12 至 macOS 15 的網路延伸功能放行路徑
TUN 模式可能透過 Network Extension、Packet Tunnel Provider、系統延伸功能或高權限輔助程序實作。不同客戶端、安裝方式與 macOS 版本會顯示不同提示。只有在啟用 TUN、增強模式或安裝網路服務時出現系統通知,才需要進入對應頁面核准。
macOS 15 Sequoia
macOS 15 將延伸功能管理入口集中到「登入項目與延伸功能」。收到「系統延伸功能已遭阻止」或網路延伸功能請求後,先開啟「系統設定」→「一般」→「登入項目與延伸功能」,檢查頁面底部的「網路延伸功能」。找到與目前客戶端開發者或 App 名稱一致的項目,開啟開關並依提示完成認證。
如果出現「加入 VPN 設定」對話框,確認請求來自剛才操作的 Clash 客戶端後選擇「允許」。完成後返回客戶端,關閉再重新開啟 TUN。部分版本需要完全退出客戶端並重新啟動,系統才會重新載入 Packet Tunnel Provider。
macOS 13 Ventura 與 macOS 14 Sonoma
在 Ventura 13.7 與 Sonoma 14.7 上,被阻擋的系統軟體通常會顯示在「系統設定」→「隱私權與安全性」頁面下方。點選「允許」後輸入管理員密碼,再依系統提示重新開啟客戶端或重新啟動 Mac。若頁面沒有按鈕,不要持續點選客戶端中的「安裝」;先退出 App,重新觸發一次 TUN 或服務安裝請求,再立即查看「隱私權與安全性」。
VPN 設定可在「系統設定」→「VPN」中查看。若存在同一客戶端留下的多個失效設定,先關閉 TUN,再刪除明確屬於舊版的重複項目,然後由目前版本重新建立。公司裝置上的 VPN 項目可能由行動裝置管理設定檔下發,不應自行刪除。
macOS 12 Monterey
Monterey 12.7 使用舊版「系統偏好設定」。前往「安全性與隱私」→「一般」,點選左下角鎖頭按鈕並完成認證,再核准遭阻擋的系統軟體。網路服務與 VPN 狀態可在「系統偏好設定」→「網路」中檢查。核准後若提示重新啟動,請儲存工作並正常重新啟動,不要強制結束系統偏好設定程序。
鑰匙圈彈窗該選擇「允許」還是「永遠允許」?
鑰匙圈彈窗會明確列出要求存取的 App 與項目名稱。Clash 客戶端可能使用鑰匙圈儲存訂閱認證資訊、控制器金鑰、服務權杖或安全儲存項目。處理前先確認彈窗頂端的 App 名稱是否與剛啟動的客戶端一致,並確認彈窗是在匯入訂閱、安裝服務或升級後首次啟動時出現。
| 按鈕 | 結果 | 建議使用情境 |
|---|---|---|
| 拒絕 | 本次不提供該鑰匙圈項目 | 無法確認 App 名稱、來源或請求時機 |
| 允許 | 僅核准本次讀取 | 首次驗證功能,暫不建立長期授權 |
| 永遠允許 | 為目前 App 身分儲存存取權限 | 確認是固定安裝路徑中的可信任客戶端,且需要在背景自動啟動 |
如果客戶端需要隨登入自動啟動,且每次啟動都會讀取同一個服務金鑰,選擇「永遠允許」可避免背景啟動被彈窗阻擋。這裡仍需輸入目前 macOS 登入帳戶的密碼。Touch ID 是否可用取決於系統版本、鑰匙圈項目與認證政策;彈窗要求密碼時,應使用本機帳戶密碼。
若只選擇「允許」,下一次 App 重新啟動時再次詢問屬於預期行為。若已選擇「永遠允許」卻仍每次出現彈窗,應重點檢查 App 是否仍從 DMG 執行、升級時是否更換發行來源,以及系統中是否同時保留兩個同名客戶端。鑰匙圈存取控制會辨識 App 簽章;名稱相同不代表是同一個授權主體。
網路延伸功能授權失敗後的重設步驟
先進行最小化重試
- 關閉客戶端中的 TUN、系統代理伺服器與開機啟動。
- 從選單列選擇「退出」,再開啟「活動監視器」確認客戶端程序已結束。
- 前往「系統設定」→「網路」→「VPN」,刪除明確屬於目前客戶端且狀態異常的舊設定。
- 在 macOS 15 的「一般」→「登入項目與延伸功能」→「網路延伸功能」中關閉舊項目,再重新開啟。
- 重新啟動 Mac,從「應用程式」啟動客戶端。
- 先啟用系統代理伺服器測試,再單獨啟用 TUN。
可以使用系統指令查看已註冊的系統延伸功能。此清單只能用來確認延伸功能是否存在,不代表 Clash 流量一定已經通過:
systemextensionsctl list
scutil --nwi
ifconfig | grep -E "utun[0-9]"
看到 utun0、utun1 等介面,也不能直接判定它們屬於 Clash,因為 iCloud Private Relay、企業 VPN 與其他網路軟體都可能建立 utun。更可靠的方法是在關閉 Clash TUN 前後,比對介面、路由與客戶端記錄,並確認記錄中沒有 permission denied、operation not permitted 或 route setup failed。
接著重新安裝輔助服務
許多客戶端會在「設定」→「服務模式」或「設定」→「Clash Core」中提供解除安裝與重新安裝入口。先執行解除安裝,完全退出客戶端,再重新開啟後安裝。認證成功後,應返回客戶端確認服務狀態顯示為執行中,而不只是確認管理員密碼視窗已消失。
不要從網路上複製不明的 sudo rm 指令,批次刪除 LaunchDaemon、系統延伸功能或網路設定。不同客戶端的 bundle identifier 與輔助服務名稱各不相同,刪錯項目可能影響其他 VPN。優先使用客戶端內建的解除安裝入口;若客戶端已無法啟動,再依其專案文件核對正確的服務名稱。
鑰匙圈持續出現彈窗的安全重設方法
開啟「應用程式」→「工具程式」→「鑰匙圈存取」,在左側選擇「登入」鑰匙圈,再選取「所有項目」。使用客戶端名稱、開發者名稱或彈窗顯示的項目名稱搜尋。按兩下目標項目,開啟「存取控制」,即可查看哪些 App 獲准存取。
- 記下彈窗顯示的鑰匙圈項目完整名稱。
- 退出 Clash 客戶端及其選單列程序。
- 在「鑰匙圈存取」中只定位對應項目,不要刪除整個「登入」鑰匙圈。
- 若存取清單指向舊路徑,可移除舊 App 項目並儲存。
- 若項目明確屬於已解除安裝的舊客戶端,可刪除該單一項目。
- 從「應用程式」重新啟動目前客戶端,讓它重新建立項目或申請存取權。
- 確認 App 名稱後選擇「允許」;功能穩定後,再決定是否使用「永遠允許」。
刪除訂閱憑證類項目後,客戶端可能要求重新登入或重新匯入訂閱。操作前應確認訂閱連結仍可取得。不要刪除憑證、Wi-Fi 密碼、瀏覽器安全儲存項目,或名稱無法確認的通用密碼項目。
授權完成後仍無法上網的檢查順序
網路延伸功能顯示已啟用,只代表 macOS 接受了該延伸功能,不代表節點可用、規則正確或 DNS 已完成解析。建議嚴格依照以下順序檢查,避免把所有故障都歸咎於系統權限。
- 核心狀態:確認 mihomo 或 Clash Meta 核心正在執行,且記錄中沒有連接埠佔用或設定解析錯誤。
- 訂閱狀態:手動更新設定,確認訂閱尚未過期,且策略群組中已選擇具體節點,而不是無法使用的佔位策略。
- 系統代理伺服器:使用
scutil --proxy檢查位址與連接埠,確認與客戶端的 mixed-port 一致。 - 執行模式:日常使用優先選擇 Rule。Global 會讓更多請求使用單一策略,Direct 則不會依代理規則轉送。
- DNS:檢查設定中的 nameserver、fallback 或 fake-ip 設定。修改後重新啟動核心,不要只切換系統代理伺服器。
- TUN 衝突:退出其他 VPN、封包擷取工具與同類代理客戶端,再單獨啟用 Clash TUN。
- 防火牆與過濾器:前往「系統設定」→「網路」→「VPN 與過濾器」,檢查是否有同時啟用的內容過濾器。
系統代理伺服器測試正常,但開啟 TUN 後斷網,問題通常集中在路由、DNS 劫持、MTU 或其他 VPN 衝突。可先關閉 TUN 的自動路由與 DNS 接管選項,逐項測試。若設定使用 Fake-IP,還要確認區域網路裝置、企業網域與本地域名是否需要加入 fake-ip-filter。不了解規則含義時,不要直接將所有網域改為直連。
反過來,若 TUN 正常但瀏覽器在關閉 TUN 後無法連線,應檢查系統代理伺服器是否確實寫入。某些客戶端的服務模式安裝失敗後,介面開關會短暫亮起,但系統代理伺服器設定並未變更。此時請重新安裝輔助服務,再使用 networksetup 或 scutil 驗證。
升級與解除安裝時避免留下權限殘留
升級前先關閉系統代理伺服器與 TUN,再退出客戶端。使用 App 內更新時,請確保 App 位於「應用程式」;手動替換時,應先退出舊版,再以新版覆蓋,不要同時保留「客戶端」「客戶端 2」與下載資料夾中的副本。更換不同分支或發行版時,先匯出本機設定,並使用舊客戶端的服務解除安裝功能。
刪除 App 圖示不會自動清除系統代理伺服器設定。如果退出前系統代理伺服器仍指向 127.0.0.1:7890,刪除客戶端後瀏覽器可能無法連線。可前往「系統設定」→「網路」→「Wi-Fi」→「詳細資訊」→「代理伺服器」,關閉網頁代理伺服器、安全網頁代理伺服器與 SOCKS 代理伺服器;也可以重新安裝客戶端,啟用後再正常關閉系統代理伺服器。
完成解除安裝後,再檢查「系統設定」→「一般」→「登入項目與延伸功能」、「系統設定」→「網路」→「VPN」以及「鑰匙圈存取」。只清理能確認屬於舊客戶端的項目。若準備繼續使用同一客戶端,不必為了升級刪除所有設定,保留訂閱與規則檔案通常更穩妥。