先釐清:啟動遭封鎖、網路授權與鑰匙圈是不同問題
Mac 上的 Clash 類型客戶端通常包含圖形介面、代理核心,以及視需要安裝的背景輔助服務。部分客戶端也會使用網路擴充功能。「已損毀」提示出現在應用程式啟動檢查階段;網路擴充功能授權會影響網路接管;鑰匙圈提示則與讀取憑證有關。三者的處理方式不同,無法靠反覆輸入管理員密碼一併解決。
| 遇到的情況 | 優先檢查項目 | 先避免這麼做 |
|---|---|---|
| 「已損毀,無法開啟」 | 安裝來源、下載檔案完整性、簽章與隔離屬性 | 不要直接關閉系統安全檢查 |
| 「無法驗證開發者」 | 「隱私權與安全性」中的允許開啟選項 | 不要當成訂閱故障處理 |
| 介面可以開啟,但 TUN 啟動失敗 | 核心記錄、服務模式或網路擴充功能權限 | 不要先刪除鑰匙圈項目 |
| 反覆要求存取鑰匙圈 | 要求存取的程式名稱、項目名稱與登入鑰匙圈狀態 | 不要對不明程式選擇「永遠允許」 |
開始前記下 macOS 版本、客戶端名稱與版本、核心名稱及錯誤訊息原文。以下系統設定路徑以 macOS 13、14、15 為例;其他版本的選項名稱可能不同,請以實際畫面為準。不要只記錄「Clash 無法開啟」,這無法分辨是應用程式遭封鎖,還是核心啟動失敗。
安裝前確認 Apple 晶片、Intel 與應用程式位置
先選對架構,再處理權限
- 開啟蘋果選單 →「關於這台 Mac」。若顯示「晶片 Apple M 系列」,優先選擇
arm64或aarch64安裝檔;若顯示 Intel 處理器,則選擇x64或x86_64。 - 標示為 Universal 的應用程式通常包含兩種架構,但仍應確認客戶端要求的最低 macOS 版本。支援的系統版本取決於實際發行版本,不能只看「Clash」這個名稱判斷。
- 開啟磁碟映像檔後,將應用程式拖移至「應用程式」資料夾,退出磁碟映像檔,再從「應用程式」資料夾啟動。不要長期從下載項目、壓縮檔或已掛載的安裝磁碟執行。
- 先退出其他代理客戶端,避免多個程式同時修改系統代理、路由與 DNS。
也可以在「應用程式」→「工具程式」→「終端機」執行以下唯讀指令,記錄系統版本與目前終端機的架構:
sw_vers -productVersion
uname -m
以原生模式執行的 Apple 晶片終端機通常會輸出 arm64,Intel 機型通常會輸出 x86_64。若終端機透過 Rosetta 轉譯執行,結果可能反映轉譯環境,因此請以「關於這台 Mac」的資訊為準。Apple 晶片執行 Intel 應用程式可能需要 Rosetta,但安裝 Rosetta 無法修復損毀的簽章或補上缺少的網路權限。
「已損毀,無法開啟」:先確認來源,再處理隔離屬性
步驟一:重新下載可信任的安裝檔
先退出應用程式,前往專案維護者的發行頁面重新下載安裝檔。不要使用來源不明的重新封裝版本。若系統明確提示「將損毀你的電腦」或偵測到惡意軟體,請停止開啟;不可套用一般開發者驗證提示的允許步驟。
「已損毀」不一定代表檔案傳輸中斷,也可能與簽章異常、應用程式內容遭修改或 Gatekeeper 的評估結果有關。移除隔離屬性無法修復應用程式本身,更不能證明程式可信。
步驟二:檢查系統是否提供允許開啟的選項
試著開啟一次應用程式,接著前往蘋果選單 →「系統設定」→「隱私權與安全性」,往下查看「安全性」區段。若出現該應用程式的「仍要打開」,請先確認應用程式名稱與來源,再依照系統提示驗證身分。並非所有封鎖情況都會提供這個按鈕;若沒有相關選項,請勿透過全面關閉 Gatekeeper 強行啟動。
步驟三:只檢查已確認可信任應用程式的隔離屬性
以下指令以應用程式已安裝在 /Applications/Clash Verge.app 為例。若名稱不同,請先在 Finder 確認實際路徑,或將應用程式拖入終端機以帶入路徑;不要直接執行不符合實際狀況的指令。
xattr -p com.apple.quarantine "/Applications/Clash Verge.app"
spctl --assess --type execute --verbose=4 "/Applications/Clash Verge.app"
codesign --verify --deep --strict --verbose=2 "/Applications/Clash Verge.app"
xattr 可用來查看隔離標記;若提示屬性不存在,只代表沒有設定這個項目。spctl 用於查看系統啟動評估,codesign 用於檢查簽章完整性。後兩者的結果須配合發行說明判斷:簽章檢查通過不代表來源可信,評估失敗也不應直接解讀為「需要移除隔離屬性」。
xattr -d com.apple.quarantine "/Applications/Clash Verge.app"
這項指令只會移除指定應用程式套件本身的隔離屬性,不會遞迴處理整個目錄,也不會修改全域安全性政策。執行後仍無法使用,請回頭檢查發行說明與簽章結果;不要把操作範圍擴大到整個「應用程式」資料夾,也不要任意加上管理員權限。
在哪裡允許網路擴充功能:先確認客戶端是否真的使用
Clash 是客戶端與核心生態的常見統稱,不代表所有應用程式都採用相同的 macOS 網路實作方式。部分客戶端使用 Network Extension;另一些 mihomo 圖形介面客戶端則透過特權輔助服務建立 TUN 介面。在系統中找不到網路擴充功能的開關,不代表安裝失敗。
使用網路擴充功能的客戶端
- 先在客戶端啟用 VPN、網路接管或 TUN 相關功能,以觸發系統授權要求。只有客戶端確實使用這項機制時,系統才會顯示相應提示。
- macOS 15 可前往「系統設定」→「一般」→「登入項目與擴充功能」→「網路擴充功能」,查看是否已允許對應的開發者或應用程式。
- macOS 13、14 若提示系統軟體遭封鎖,請查看「系統設定」→「隱私權與安全性」中的相關提示;VPN 設定也可在「系統設定」→「VPN」中確認。不同類型擴充功能的設定位置不盡相同。
- 確認開發者名稱後再授權。只有系統明確要求時才重新啟動;回到客戶端重新啟用功能,並查看記錄是否仍有權限錯誤。
「允許加入 VPN 設定」與「允許系統擴充功能」並非完全相同的授權。不要為了 Clash TUN 就預設降低啟動安全性、關閉 SIP,或安裝不明的核心擴充功能。一般現代使用者空間代理方案不應將這些操作列為常規安裝條件。
受企業管理的裝置可能無法自行允許
若開關無法編輯,或畫面顯示由組織管理,請查看「系統設定」中的裝置管理資訊。MDM 政策可以限制 VPN、系統擴充功能及背景服務。這類限制應交由裝置管理員處理,反覆重新安裝客戶端也無法繞過管理政策。
安裝服務模式:管理員密碼不等於鑰匙圈密碼
使用 mihomo 的桌面客戶端可能會透過服務模式執行特權輔助程式,以設定 TUN、路由或相關網路選項。服務模式安裝成功不代表 TUN 已啟用;這只表示客戶端取得執行相關操作所需的權限。
- 確認應用程式已移至「應用程式」資料夾,並從固定位置啟動。
- 在客戶端的「設定」中尋找「服務模式」、「安裝服務」或「修復服務」。例如,Clash Verge Rev 的相關選項通常位於「設定」→「服務模式」,實際按鈕名稱請以安裝的版本為準。
- 系統要求管理員授權時,請先確認應用程式名稱。輸入的是這台 Mac 上具有管理權限的帳號密碼,不是訂閱密碼,也不是 Apple 帳號密碼。
- 安裝後確認服務狀態,再啟用 TUN。開啟客戶端記錄,查看是否仍有權限不足、核心啟動失敗或位址遭占用等錯誤。
若升級後每次啟動都要求重新安裝服務,請先退出舊的執行個體,再使用客戶端內建的卸載服務或重新安裝服務功能。不要照著來源不明的教學手動刪除 /Library/LaunchDaemons 下的檔案;誤刪其他軟體的服務會造成新問題。
服務安裝失敗也可能是舊版輔助程式、應用程式位置變更或管理政策所致。此時應記下失敗時間與錯誤記錄,而不是反覆輸入密碼。關閉 TUN 後,系統代理仍可能正常使用,可藉此區分特權服務故障與訂閱、節點故障。
鑰匙圈提示:先確認要求存取的程式,再決定是否允許
「某個應用程式想使用儲存在鑰匙圈中的機密資訊」通常表示程式正在讀取已儲存的憑證或應用程式金鑰。實際要求的內容取決於客戶端的實作方式,並非每個 Clash 客戶端都會出現這類提示。這與安裝背景服務時的管理員驗證是兩個不同流程。
出現提示時,依序確認以下項目
- 確認要求存取的程式:應是剛啟動的客戶端,或可辨識的相關元件。若名稱或路徑陌生,請先選擇「拒絕」,再確認來源。
- 確認項目名稱:應與目前使用的應用程式或功能相關。若要求存取無關的瀏覽器、郵件或其他應用程式憑證,請勿直接允許。
- 確認密碼類型:登入鑰匙圈通常使用這台 Mac 的登入密碼。若曾重設帳號密碼,舊鑰匙圈可能仍使用原本的密碼。
- 先試用單次允許:確認功能恢復後,再視需要決定是否選擇「永遠允許」。不要將所有應用程式加入敏感項目的存取清單。
密碼正確,提示卻反覆出現怎麼辦?
使用 Spotlight 搜尋「鑰匙圈存取」,選擇「登入」鑰匙圈,再尋找與目前客戶端相關的項目。若鑰匙圈已鎖定,可先解鎖再重試。若問題在客戶端更新後才出現,可能是簽章識別資訊或項目存取控制有所變更;請先查看該版本的說明。
只有在清楚知道項目用途,且能重新登入或重新匯入設定時,才考慮刪除與目前應用程式相關的單一項目。刪除前先備份可匯出的設定;不要一開始就重置整個預設鑰匙圈,否則其他應用程式儲存的密碼也會受到影響。
完成授權後,分兩輪檢查系統代理與 TUN
不要同時開啟系統代理與 TUN,再猜測是哪一項生效。先測試系統代理,接著關閉它再測試 TUN;每輪只變更一個條件,才能確認實際故障點。
第一輪:檢查系統代理連接埠
在客戶端查看實際的混合代理連接埠。以下僅以本機 127.0.0.1:7890 為例;若客戶端顯示其他連接埠,請依實際值修改。先啟用系統代理,再於終端機執行:
scutil --proxy
lsof -nP -iTCP:7890 -sTCP:LISTEN
curl -I --connect-timeout 10 --max-time 20 --proxy http://127.0.0.1:7890 https://example.com
scutil --proxy 用於確認系統代理設定,lsof 用於查看連接埠是否正在監聽,最後一項指令則明確透過 HTTP 代理發出要求。收到 HTTP 回應表示這次要求的連線路徑有回應,但不代表所有應用程式都會使用系統代理。終端機工具也不一定會自動遵循 macOS 圖形介面的代理設定。
第二輪:單獨測試 TUN
- 暫時關閉系統代理,並清除目前測試用終端機中自行設定的代理環境變數。
- 啟用 TUN,查看記錄中的介面建立、路由與 DNS 初始化結果。
- 重新發出不含
--proxy的要求,並在客戶端連線記錄中確認目標、命中的規則與出口策略。
unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY
curl -I --connect-timeout 10 --max-time 20 https://example.com
這項 unset 只會影響目前的終端機工作階段。一般網頁原本就可能直接連線成功,因此「網頁能開啟」不足以證明 TUN 已生效;請搭配連線記錄判斷。系統中存在 utun 介面,也不能單憑這點認定它屬於 Clash,因為其他 VPN 和系統功能同樣可能建立該介面。
若啟用 TUN 後部分網域無法存取,請再檢查 DNS、規則及其他 VPN 是否衝突。權限問題通常會在啟動階段顯示明確錯誤;若只有特定網站逾時,則應進一步檢查節點、規則比對結果與解析結果,不必重新處理應用程式隔離屬性。
常見問題與排除步驟
應用程式已能開啟,為什麼還要輸入管理員密碼?
通過啟動檢查,只代表 macOS 允許執行應用程式。安裝特權輔助服務是另一項操作,可能需要管理員授權。請先確認提示是在安裝服務時出現,還是在讀取鑰匙圈時出現,再輸入對應密碼。
找不到「網路擴充功能」,是安裝檔選錯了嗎?
不一定。請先確認客戶端採用的是網路擴充功能,還是輔助服務方案。透過 mihomo 與特權服務實現 TUN 的客戶端,不一定會有可單獨啟用的網路擴充功能項目。架構是否正確,應透過安裝檔名稱、系統資訊與啟動錯誤確認。
退出 Clash 後網路無法使用,該先恢復哪個設定?
先回到客戶端關閉 TUN 與系統代理,再正常退出。如果應用程式無法啟動,請前往「系統設定」→「網路」→目前的網路服務→「詳細資訊」→「代理」,檢查是否殘留指向本機已關閉連接埠的 HTTP、HTTPS 或 SOCKS 代理。只移除確認由該客戶端設定的項目;企業代理設定請勿任意刪除。
依照「可信任的安裝檔 → 正確架構 → 允許啟動 → 服務或擴充功能授權 → 鑰匙圈 → 網路測試」的順序處理。每完成一個步驟就重新測試一次,並保留具體錯誤訊息。這樣既能減少重複操作,也能在尋求協助時清楚說明故障發生在哪個環節。