先區分四種授權:開啟 App、輔助服務、網路延伸功能與鑰匙圈

macOS 上的 Clash 用戶端,網路流量導向方式不盡相同。圖形介面可能呼叫 mihomo 核心,也可能搭配特權輔助服務或 Network Extension。參考其他用戶端的授權畫面時,請先確認目前使用的軟體名稱、版本與執行模式,再判斷是否需要進行相同步驟。

先從蘋果選單 →「關於這台 Mac」記下 macOS 版本與晶片類型,再到用戶端的「關於」頁面記下用戶端版本;若有核心資訊頁面,也一併記錄 mihomo 版本。Apple Silicon 與 Intel 安裝檔應選擇各自對應的架構;選錯架構通常是啟動相容性問題,無法靠核准網路延伸功能解決。

提示或功能涉及的權限處理時機
無法驗證開發者、App 已損毀Gatekeeper、簽章與下載隔離屬性首次開啟 App 前
安裝輔助工具、要求管理者驗證特權輔助服務或服務模式用戶端明確要求安裝服務時
核准系統延伸功能、加入 VPN 設定系統延伸功能、網路延伸功能或 VPN 設定首次啟用相應功能時
存取鑰匙圈中的項目讀取指定憑證的權限App 讀取已儲存的憑證時

首次開啟:分別處理開發者驗證與「已損毀」提示

先確認安裝位置與來源

  1. 先結束正在執行的舊版本,再將磁碟映像檔中的 App 拖到「應用程式」資料夾,不要長期直接從安裝映像檔執行。
  2. 退出安裝映像檔,再從「應用程式」資料夾開啟,避免後續授權指向暫時掛載路徑中的副本。
  3. 確認下載來源、App 名稱與處理器架構;若系統明確提示含有惡意軟體,請停止執行並重新確認來源。

若出現「無法驗證開發者」之類的提示,macOS 13 Ventura、14 Sonoma 及後續版本,通常會在「系統設定」→「隱私權與安全性」的安全性區段,提供針對最近一次遭封鎖項目的「仍要打開」。macOS 12 Monterey 的對應位置是「系統偏好設定」→「安全性與隱私權」→「一般」。只有發生相關封鎖且系統允許略過時,才會顯示按鈕。

macOS 15 Sequoia 調整了部分未簽署或未經公證軟體的開啟流程,不應只依賴舊教學中按住 Control 再點按「打開」的方法。請依目前系統提示前往安全性設定,確認 App 後再繼續。由組織管理的電腦可能禁止略過限制,請交由裝置管理者處理。

「已損毀」不是一般的權限開關

這項提示可能與套件內容異常、簽章失效或下載隔離處理有關。建議先刪除目前的 App 副本,重新下載與目前系統相容的版本;不要一開始就關閉整體系統安全檢查。若要進一步查明原因,可在終端機輸入以下命令開頭,再將「應用程式」資料夾中的實際 App 拖入終端機,補上路徑後分別執行每一行:

終端機 · 唯讀檢查
spctl --assess --type execute --verbose=4
codesign --verify --deep --strict --verbose=2
xattr -l

以上命令都需要提供 App 路徑,不能直接把三行一起貼上當作完整診斷。第一行查看系統執行評估結果,第二行驗證現有簽章,第三行列出延伸屬性。出現 com.apple.quarantine 只代表檔案帶有隔離標記,不代表 App 有害,也不代表 App 可信;簽章驗證成功也不等於已通過系統公證。

核准網路延伸功能:依 macOS 版本尋找設定位置

先在用戶端啟用一次需要延伸功能的項目,再查看系統提示。系統延伸功能通常由 App 主動提出啟用要求;只把 App 複製到「應用程式」資料夾,不一定會產生待核准項目。核准前請確認開發者名稱及用戶端的版本說明,不要只憑提示出現的時間判斷來源。

macOS 版本常見檢查位置確認方式
12 Monterey系統偏好設定 → 安全性與隱私權 → 一般若出現系統軟體遭封鎖的提示,解鎖後確認開發者並允許
13 Ventura / 14 Sonoma系統設定 → 隱私權與安全性查看安全性區段是否有延伸功能核准提示
15 Sequoia系統設定 → 一般 → 登入項目與延伸功能 → 網路延伸功能開啟詳細資訊,確認並啟用該 App 對應的網路延伸功能

實際設定位置也會因延伸功能的套件形式與系統小版本而異。若出現「加入 VPN 設定」提示,請先確認提出要求的 App 名稱,再決定是否允許;VPN 設定可在系統的「VPN」或「網路」相關頁面查看。VPN 設定授權與系統延伸功能核准是不同的開關,內容過濾器也不等同於 TUN 通道。

  1. 保持用戶端開啟,並在介面中啟用需要延伸功能的網路功能。
  2. 依系統提示前往設定,核准相符的開發者或延伸功能,並完成系統要求的身分驗證。
  3. 返回用戶端,先關閉再重新啟用該功能;只有系統明確要求時才重新啟動電腦。
  4. 若沒有待核准項目,請檢查用戶端記錄、延伸功能安裝說明與服務狀態;不必反覆尋找尚未提出申請的權限。

可執行 systemextensionsctl list,查看透過系統延伸功能機制註冊的項目及其狀態。但這項命令不會列出所有網路元件:不同形式的 Network Extension 不一定都會顯示,透過特權服務運作的 TUN 也不能只憑這裡有沒有項目來判定是否成功。

鑰匙圈提示:確認請求程序、項目名稱與密碼類型

鑰匙圈存取提示通常會顯示兩項重要資訊:提出存取要求的程序,以及要讀取的項目。項目可能用來儲存訂閱憑證、代理伺服器驗證資訊或 App 自身的存取權杖,實際用途取決於用戶端的設計。請先展開詳細資訊確認內容,再選擇「允許」或「永遠允許」。

三種操作各代表什麼

  • 拒絕:不提供憑證給這次要求;App 可能會要求重新登入、重新輸入驗證資訊,或顯示讀取憑證失敗。
  • 允許:核准這一次存取;之後再次讀取時,仍可能再次詢問。
  • 永遠允許:為該項目記錄目前 App 身分的存取許可;適用於已確認且需要持續讀取的要求。

若提示要求解鎖「登入」鑰匙圈,通常需要輸入目前使用者的登入密碼,而非訂閱密碼或 Apple 帳號密碼。若曾以其他方式重設登入密碼,鑰匙圈密碼可能仍是舊密碼;持續輸入新密碼不一定能解鎖舊鑰匙圈。

反覆出現提示時,依序排查

  1. 在 Finder 選擇「前往」→「工具程式」→「鑰匙圈存取」;也可以透過 Spotlight 搜尋開啟。
  2. 選取「登入」鑰匙圈,依提示中顯示的項目名稱搜尋,不要大量刪除無關密碼。
  3. 開啟符合的項目,檢查「存取控制」中允許存取的 App。部分項目不提供相同的編輯選項,請以實際介面為準。
  4. 確認是否安裝了兩份 App,或更新後簽章身分是否改變。先保留一份位置明確的安裝版本,再重新提出存取要求。

重設預設鑰匙圈會影響其他已儲存的憑證,不應作為第一個排查步驟。若需要刪除用戶端專用項目,請先確認可以重新輸入相關憑證,並記下項目名稱;刪除後讓用戶端重新儲存,不要修改其他 App 的存取控制來略過提示。

TUN 權限:先確認系統代理,再啟用虛擬介面

系統代理主要為遵循 macOS 代理設定的 App 提供 HTTP、HTTPS 等代理入口;TUN 則透過虛擬網路介面與路由接管流量。終端機工具是否讀取系統代理,取決於工具本身,因此「瀏覽器可以連線、命令列無法連線」不足以證明是權限不足。

建議先關閉 TUN,只測試本機代理監聽與規則,再處理路由接管。以下以 127.0.0.1:7890 作為範例位址,實際設定請以用戶端顯示的 HTTP 或 mixed 連接埠為準;7890 並非所有用戶端的固定預設值。

終端機 · 範例連接埠與明確指定代理的檢查
lsof -nP -iTCP:7890 -sTCP:LISTEN
scutil --proxy
curl --proxy http://127.0.0.1:7890 --connect-timeout 10 --max-time 20 -I https://example.com/
  • lsof 有監聽結果:接著確認程序是否屬於目前的用戶端;若沒有結果,先檢查核心是否啟動,以及實際使用的連接埠。
  • scutil --proxy:查看目前生效的系統代理資訊。這不能證明 TUN 路由已建立。
  • curl 傳回回應標頭:代表這次明確指定代理的請求收到回應;仍須搭配狀態碼與用戶端連線記錄,判斷請求的實際結果。

確認服務與執行階段設定

若用戶端使用 mihomo 特權服務,請從設定中的服務安裝入口完成管理者驗證,再啟用 TUN。選單可能稱為「服務模式」、「輔助服務」或「安裝服務」,請以該版本的實際介面為準;不要長期以管理者身分執行整個圖形介面。

mihomo 執行階段欄位 · 視需要合併
tun:
  enable: true
  stack: system
  auto-route: true
  auto-detect-interface: true

這些只是 TUN 相關欄位,並非可獨立執行的完整設定。stack 可用值與行為請以目前核心版本為準;這些欄位也不能取代系統權限。用戶端可能在啟動時覆寫訂閱中的同名欄位,應檢查最終生效的設定,而不只是下載的 YAML 檔案。

啟用後可用 ifconfig 查看介面、用 netstat -rn -f inet 查看 IPv4 路由,並用 scutil --dns 查看解析器狀態。macOS 本身與其他 VPN 也會建立 utun 介面;單獨看到 utun0 或其他編號,不能證明它屬於目前的用戶端。請一併比對啟用前後的變化、用戶端記錄與實際連線紀錄。

授權完成仍無法連線:依現象縮小排查範圍

觀察到的現象優先檢查項目下一步
介面已開啟,但本機連接埠沒有監聽核心啟動記錄、設定解析錯誤、連接埠遭占用修正啟動錯誤後重新載入設定
明確指定代理可用,但瀏覽器未走代理系統代理狀態、瀏覽器自己的代理設定確認目前的網路服務與瀏覽器延伸功能設定
系統代理可用,但 TUN 無法啟用特權服務、延伸功能狀態、介面或路由錯誤依用戶端實際採用的方式處理對應權限
啟用 TUN 後,網域名稱無法解析DNS 設定、解析記錄、其他 VPN 的 DNS 設定每次只保留一個網路流量接管元件再測試
更新後鑰匙圈反覆詢問App 副本、簽章身分、項目存取控制確認請求者後,重新授予該項目的存取權限

訂閱成功匯入,只代表用戶端已取得設定,不代表節點驗證、DNS、策略群組選擇與系統路由都正常。測試時請在連線頁面確認目標網域命中的規則與出口;若命中 DIRECT,應先檢查規則順序,而非繼續核准系統延伸功能。

排查衝突時,先暫停其他 VPN、內容過濾器或封包擷取工具,再單獨啟用目前的用戶端。每次只變更一項條件,並記錄變更前後的記錄時間。不要同時重新安裝 App、刪除鑰匙圈項目及修改 DNS,否則即使恢復連線,也無法判斷真正起作用的是哪一項修正。

升級與解除安裝:確認服務狀態,保留可還原的網路設定

  1. 升級前:記下用戶端版本、核心版本與目前的運作模式;備份需要保留的本機規則,避免覆寫後遺失修改。
  2. 升級後:先開啟 App,再確認服務是否需要更新;只有出現新的授權要求時,才確認並重新核准。
  3. 解除安裝前:在用戶端關閉 TUN 與系統代理,使用內建選項解除安裝輔助服務或停用延伸功能,再結束 App。
  4. 解除安裝後:macOS 13 及後續版本可在「系統設定」→「網路」→目前的網路服務→「詳細資訊」→「代理伺服器」檢查殘留設定;macOS 12 對應位置為「系統偏好設定」→「網路」→目前的服務→「進階」→「代理伺服器」。

不要刪除其他 VPN 的設定,也不要一看到 127.0.0.1 就全部清除。請先確認該位址與連接埠確實由已解除安裝的用戶端設定;工作網路可能另有管理者設定的代理伺服器。若裝置受管理,請先向管理者確認相關設定。

排查完成後,應能分別回答四個問題:App 是否正常啟動、目前模式是否需要延伸功能、鑰匙圈存取要求是否來自已確認的 App,以及代理或 TUN 流量是否命中預期規則。分別確認這四點,比反覆輸入密碼或重新啟動更容易找出問題。