先釐清:啟動遭封鎖、擴充功能授權與憑證存取

這三種提示出現在不同階段。應用程式尚未開啟就顯示「已損壞」,應優先檢查安裝檔、簽章與系統安全性評估;應用程式已開啟,只有 TUN 無法啟用,則檢查網路接管方式與特權服務;彈窗明確提到「鑰匙圈」,就該檢查憑證項目的存取權限。反覆重新安裝通常無法同時解決這三類問題。

看到的狀況優先檢查項目第一步
已損壞,無法打開下載檔完整性、應用程式簽章、系統安全性評估保留提示畫面截圖,重新下載符合裝置架構的安裝檔
無法驗證開發者Gatekeeper 執行許可查看「隱私權與安全性」中的具體封鎖說明
TUN 開關一開就自動關閉特權服務、虛擬介面、核心日誌記下啟用當下的錯誤訊息
反覆要求輸入鑰匙圈密碼登入鑰匙圈狀態、應用程式存取身分確認發出請求的程序與目標項目

先記下 macOS 版本、晶片類型、用戶端版本與核心版本。可從「蘋果選單」→「關於這台 Mac」查看系統資訊。若用戶端設定中的核心標示為 mihomo,請依該核心支援的設定功能進行排查;不同用戶端的選單與授權方式可能不同,不能只憑 Clash 這個名稱判斷是否使用網路擴充功能。

「已損壞,無法打開」:先檢查安裝檔與簽章

安裝位置與晶片架構

  1. 先結束正在執行的用戶端,並保留現有訂閱網址與本機設定備份。
  2. 前往下載頁確認平台與架構。Apple 晶片優先選擇 arm64,Intel 晶片選 x64;通用版本通常標示為 universal。
  3. 完整下載並打開磁碟映像檔,將應用程式拖曳至「應用程式」資料夾;不要長期從下載資料夾或磁碟映像檔執行。
  4. 退出磁碟映像檔,再從「應用程式」開啟一次,並記下系統提示的原文。

架構不相符通常會出現處理器相容性或 Rosetta 相關提示,並非所有啟動錯誤都與架構有關。若磁碟映像檔本身無法掛載,請先重新下載;若只有應用程式遭封鎖,則繼續檢查簽章與系統安全性評估。

三個唯讀診斷指令

開啟「終端機」,輸入下列指令部分,再從「應用程式」將實際的應用程式拖曳至終端機,補上路徑。下方的 APP 代表需手動輸入的應用程式路徑;請輸入不含外層引號的完整路徑,空格會保留。這三項檢查不會刪除檔案,也不會更改系統安全性設定。

printf '請輸入應用程式的完整路徑:'
IFS= read -r APP
/usr/bin/codesign --verify --deep --strict --verbose=2 "$APP"
/usr/sbin/spctl --assess --type execute --verbose=4 "$APP"
/usr/bin/xattr -l "$APP"
  • codesign 用於檢查程式碼簽章結構。若出現 a sealed resource is missing or invalid,可能是資源缺失、安裝檔損毀或簽章後內容遭到變更;請改用重新下載的原始安裝檔。
  • spctl 用於查看系統執行政策的評估結果。rejected 表示目前評估未通過,需依後續原因判斷,不代表已確認為惡意程式。
  • xattr 用於查看延伸屬性。出現 com.apple.quarantine 很常見,表示檔案帶有下載隔離資訊;僅憑這項資訊無法判定問題來源。

何時使用「仍要打開」

在 macOS 13 Ventura、14 Sonoma 與 15 Sequoia 中,嘗試開啟應用程式後,前往「系統設定」→「隱私權與安全性」,向下查看「安全性」區域。若是允許使用者確認的封鎖,系統可能會提供「仍要打開」選項;確認來源與應用程式身分後,再依系統指示驗證管理者身分。

「已損壞」不一定會出現這個按鈕。若系統明確警告應用程式會損害電腦、偵測到惡意內容,或簽章檢查結果異常,請停止嘗試並核對發行資訊。macOS 15 已調整部分未正確簽章或未經公證軟體的開啟流程,舊教學中在 Finder 按右鍵選「打開」並非通用的解決方式。

網路擴充功能授權:先確認用戶端採用哪種網路接管方式

系統代理、TUN 與網路擴充功能並非同一個開關。系統代理主要影響遵循代理設定的應用程式;TUN 透過虛擬網路介面承接流量;Network Extension 則是 macOS 提供的一組網路擴充機制。部分以 mihomo 為核心的用戶端會透過特權服務建立 utun 介面,不需要使用者另外核准一個獨立的系統網路擴充功能。

需要擴充功能許可時的系統設定位置

  • macOS 15:前往「系統設定」→「一般」→「登入項目與擴充功能」,在「擴充功能」區域查看「網路擴充功能」,開啟詳細資訊後確認對應的用戶端或開發者項目。
  • macOS 13、14:若收到系統軟體遭封鎖的提示,請前往「系統設定」→「隱私權與安全性」,查看是否有對應開發者的「允許」選項;VPN 或過濾器設定可在「系統設定」→「網路」→「VPN 與過濾器」中檢查。
  • 受管理裝置:如果開關呈現灰色或提示由組織管理,請記下提示內容並聯絡管理者。裝置管理政策可能會限制擴充功能安裝、VPN 設定或背景服務。

只允許身分與目前安裝檔相符的項目。若系統要求重新啟動,請先儲存工作再重新啟動;若未要求重新啟動,可先結束並重新開啟用戶端。若清單中沒有對應項目,也沒有擴充功能安裝提示,應回頭查看用戶端日誌以確認實作方式,不要為了尋找不存在的開關而反覆修改系統設定。

鑰匙圈反覆跳出提示:確認項目、密碼與應用程式身分

先辨認彈窗要求輸入哪種密碼

「想要存取鑰匙圈中儲存的機密資訊」通常是讀取憑證的請求;「想要進行更改」則可能是在要求管理者授權。兩種情況的處理方式不同,不要混為一談。鑰匙圈中的「登入」鑰匙圈通常會隨帳號登入而解鎖;但若曾透過其他方式重設登入密碼,鑰匙圈密碼可能仍是舊密碼。

  1. 使用 Spotlight 搜尋並開啟「鑰匙圈存取」,在側邊欄選擇「登入」,確認鑰匙圈是否已鎖定。
  2. 依照彈窗列出的項目名稱搜尋,開啟項目後確認「名稱」、「種類」、「帳號」與「存取控制」資訊;不要只因名稱中含有 Clash 就刪除。
  3. 確認是哪個程序要求存取。若顯示的是核心或輔助程式,請檢查其所屬應用程式路徑是否與「應用程式」中的目前安裝位置一致。
  4. 確認請求與剛才執行的操作相符後,可先選擇「允許」測試一次;只有在確實信任該程式且清楚其存取用途時,才考慮選擇「永遠允許」。

升級後反覆要求授權的常見原因

應用程式更新可能會改變簽章身分,輔助程式的路徑也可能隨安裝位置而變更。如果仍從下載資料夾執行舊版本,而新版本位於「應用程式」資料夾,同一項憑證就可能被不同程序反覆要求存取。請先結束所有副本,只保留一個安裝位置,再透過「活動監視器」檢查程序。

若登入鑰匙圈可以解鎖,但某個項目持續要求存取,請先備份相關服務憑證,並確認能夠重新登入;之後只處理該應用程式對應的失效項目,再由用戶端重新儲存。不要批次刪除「系統」鑰匙圈、根憑證或其他應用程式的項目。重設預設鑰匙圈會影響已儲存的密碼,應充分了解後果再作為最後手段,而非第一個排查步驟。

TUN 授權失敗:依序檢查服務、介面、路由與 DNS

先分別測試系統代理與 TUN

先關閉 TUN,只啟用系統代理,再用瀏覽器瀏覽原本可穩定連線的網站。如果系統代理也無法使用,應優先檢查訂閱節點、連接埠、規則與網路連線;若系統代理正常但 TUN 失敗,再集中檢查特權服務與虛擬介面。這樣可避免把節點故障誤認為系統授權問題。

若用戶端提供「安裝服務」、「修復服務」或類似選項,請先查看目前版本的說明,再使用用戶端內建功能完成安裝。安裝若需要管理者許可,請確認彈窗中提出請求的程式。更新後若出現輔助程式版本不一致,可先結束用戶端,再透過內建選項修復服務;不要手動刪除 /Library/PrivilegedHelperTools 中不明的檔案。

保留啟用 TUN 前後的日誌

建議依照清楚的步驟重現問題:記下目前時間,開啟 TUN,等待約 10 秒,再關閉 TUN,然後匯出這段時間的日誌。重點搜尋 permission denied、operation not permitted、address already in use 與 failed to create。這些關鍵字只能協助定位,仍需搭配前後文判斷具體對象。

/sbin/ifconfig
/usr/sbin/scutil --proxy
/usr/sbin/scutil --dns
/usr/sbin/netstat -rn -f inet
/usr/sbin/lsof -nP -iTCP:7890 -sTCP:LISTEN
  • ifconfig 可用來查看介面變化,但 utun 也可能屬於其他 VPN 或系統服務;介面數量增加不代表 Clash 已成功接管流量。
  • scutil --proxy 可用來確認系統代理設定;TUN 正常運作時,這裡也可能沒有啟用 HTTP 代理。
  • scutil --dns 可用來查看系統解析器狀態,但無法單獨證明用戶端內部 DNS 或 DNS 劫持已生效。
  • netstat 可用來比對路由表。不同 TUN 實作方式可能採用不同的路由配置,不應只根據預設路由判斷。
  • lsof 檢查範例連接埠 7890。這是常見的代理連接埠,但並非固定值;請替換成目前設定中的實際監聽連接埠。若權限不足,輸出內容也可能不完整。

排查時可暫時退出其他 VPN 或網路過濾工具,記錄變化後再恢復。若介面已建立但網域名稱無法解析,應改查 DNS 設定;若日誌顯示連接埠遭占用,請先確認是哪個程序占用,不要一再輸入管理者密碼。其他欄位說明請參閱進階設定。

還原網路設定並整理排查資訊

若結束用戶端後網路仍異常,請重新開啟用戶端,依序關閉 TUN 與系統代理,再正常結束程式。必要時前往「系統設定」→「網路」→目前的網路連線→「詳細資訊」→「代理」,確認是否仍有指向本機的代理位址。只移除這次操作新增的設定;公司網路要求的代理、PAC 與 DNS 設定應予以保留。

接著檢查「VPN 與過濾器」中是否仍有正在運作的連線。不要一開始就重設所有網路設定,也不要直接刪除所有虛擬介面。若能確認某項設定是這次安裝新增的,可依照先前記錄逐項還原;每還原一項,就測試網頁瀏覽與網域名稱解析。

回報問題前,請準備以下基本資訊

  • macOS 完整版本號、晶片類型、用戶端版本與核心版本。
  • 問題發生於啟動、系統代理或 TUN 哪個階段,以及首次出現問題時執行的操作。
  • 系統彈窗原文、簽章檢查結果,以及故障時間前後約 30 秒的相關日誌。
  • 是否同時執行其他 VPN、裝置是否由組織管理,以及修復服務後是否有所變化。

排查順序可固定為:安裝檔與應用程式身分 → 系統執行許可 → 特權服務或擴充功能 → TUN 介面與路由 → DNS。鑰匙圈彈窗則單獨依憑證存取問題處理。每次只變更一項並記錄結果,方便確認是哪個步驟讓系統恢復正常。