macOS 安裝 Clash 用戶端:網路擴充功能、VPN 授權與鑰匙圈提示處理

釐清安裝安全提示、網路擴充功能、VPN 設定與鑰匙圈存取的用途,依用戶端實際採用的機制處理權限,無須關閉系統安全防護。

安裝前先確認晶片架構與用戶端類型

macOS 上的「Clash」可能指圖形化用戶端,也可能指 mihomo 等命令列核心。圖形化用戶端負責匯入訂閱、選擇策略群組、切換系統代理與顯示日誌;核心則負責讀取設定、監聽本機連接埠並執行規則。安裝圖形化用戶端時出現的網路擴充功能、VPN 設定或輔助工具授權,源自用戶端採用的流量接管方式,並不表示訂閱服務取得了相同的系統權限。

Apple Silicon 與 Intel 安裝套件不可混用

搭載 M1、M2、M3、M4 系列晶片的 Mac 使用 Apple Silicon,對應的安裝套件通常標示為 arm64aarch64 或 Apple Silicon。較早的 Intel Mac 則對應 x64x86_64 或 Intel。點選畫面左上角的蘋果選單,進入「關於這台 Mac」,即可查看「晶片」或「處理器」欄位;也可以在終端機執行:

uname -m
  • 輸出 arm64:選擇 macOS ARM64 或 Apple Silicon 版本。
  • 輸出 x86_64:選擇 macOS x64 或 Intel 版本。
  • Apple Silicon 有時可透過 Rosetta 2 執行 Intel 應用程式,但原生 ARM64 版本通常更適合長期使用。

下載頁也應區分應用程式安裝套件與獨立核心。常見的 .dmg 檔案需要開啟磁碟映像檔,再將應用程式拖曳至「應用程式」;.pkg 檔案則由系統安裝程式執行;解壓縮後得到的單一可執行檔通常是核心,不能依照圖形化用戶端的步驟尋找選單列圖示。

先將應用程式放入「應用程式」再首次啟動

  1. 開啟下載的 .dmg
  2. 將用戶端圖示拖曳至「應用程式」資料夾,不要長期從磁碟映像檔或「下載項目」資料夾執行。
  3. 退出磁碟映像檔,再從 Finder 的「應用程式」中啟動用戶端。
  4. 首次啟動後確認選單列、Dock 或主視窗中是否出現用戶端入口。

固定放在「應用程式」資料夾可避免升級後路徑變更,也方便系統辨識登入項目、輔助工具與網路擴充功能所屬的主應用程式。若直接在唯讀磁碟映像檔中執行,用戶端可能無法寫入自身更新內容;若從隨機解壓縮資料夾啟動,多次下載也可能留下名稱相同但版本不同的副本。

處理「無法開啟」與開發者安全性提示

macOS 的安裝安全性提示主要由 Gatekeeper、應用程式簽署、公證狀態與下載隔離屬性共同觸發。提示文字不同,處理方式也不同。不要將「無法確認開發者」、「應用程式已損毀」與「應用程式需要更新」視為同一種故障。

出現「無法確認開發者」時允許單次開啟

如果確認安裝套件來自所選用戶端的上游專案發佈入口,可以先在 Finder 中找到應用程式,按住 Control 鍵點選應用程式,選擇「開啟」,再於確認視窗中點選「開啟」。另一種方式是 macOS 13 及以上版本的「系統設定」→「隱私權與安全性」,在安全性區域找到剛被封鎖的應用程式,選擇「仍要開啟」。這是針對該應用程式的單次確認,不需要修改整台 Mac 的全域安全性等級。

macOS 12 及更早版本通常使用「系統偏好設定」→「安全性與隱私權」→「一般」。選單名稱雖然不同,原則相同:先實際啟動一次,讓系統記錄封鎖事件,再到安全性設定中核對應用程式名稱與來源。

「應用程式已損毀」不等同於一般的未識別提示

「已損毀,無法開啟」可能源自下載不完整、簽署狀態異常、應用程式遭到二次修改,或舊版本與目前的 macOS 不相容。先刪除目前的副本,重新下載符合晶片架構的版本,並確認應用程式已完整複製到「應用程式」。如果上游發佈說明明確列出最低系統版本,也要核對目前系統是否符合要求。

需要進一步檢查時,可以在終端機查看應用程式簽署與系統評估結果。以下範例以安裝在標準資料夾中的 Clash Verge Rev 為例,指令只會讀取狀態:

codesign -dv --verbose=4 "/Applications/Clash Verge Rev.app" 2>&1
spctl --assess --type execute --verbose=4 "/Applications/Clash Verge Rev.app"

codesign 的輸出可用來查看識別碼、簽署機構與執行階段設定;spctl 會顯示系統是否接受該應用程式的評估結果。如果應用程式名稱不同,應在 Finder 中將實際應用程式拖曳至終端機,以取得正確路徑。不要根據論壇上的舊指令批次移除所有應用程式的安全性屬性。

網路擴充功能、VPN 設定與系統代理有何不同

Clash 用戶端常見的接管方式包括系統代理與 TUN。系統代理主要修改 macOS 目前網路服務的 HTTP、HTTPS 或 SOCKS 代理設定;TUN 則透過虛擬網路介面接管更廣泛的 IP 流量。用戶端是否要求網路擴充功能、VPN 設定或管理員授權,取決於它如何實作 TUN,而不是由「規則模式」、「全域模式」等代理策略決定。

提示或入口 主要用途 適用情境 核對位置
系統代理 將支援 macOS 代理設定的應用程式指向本機監聽連接埠 瀏覽器與多數桌面應用程式 「系統設定」→「網路」→目前網路→「詳細資訊」→「代理伺服器」
VPN 設定 註冊由用戶端管理的網路通道設定 採用 Network Extension 的 TUN 實作 「系統設定」→「網路」→「VPN 與過濾器」
網路擴充功能 允許應用程式載入網路通道或內容過濾擴充功能 用戶端首次啟用相關功能 「系統設定」→「一般」→「登入項目與擴充功能」中的相關擴充功能區域
管理員驗證 安裝或更新特權輔助工具、調整受保護的網路設定 部分用戶端的服務模式或 TUN 實作 系統驗證對話框與用戶端服務狀態
鑰匙圈存取 讀取或儲存用戶端建立的憑證項目 需要持久儲存敏感設定或輔助服務憑證時 「應用程式」→「工具程式」→「鑰匙圈存取」

只使用系統代理時通常不需要 VPN 設定

用戶端開啟「系統代理」後,會將代理伺服器寫入目前的網路服務。常見的本機位址是 127.0.0.1,常見的 mixed 監聽連接埠是 7890;舊設定也可能分別使用 HTTP 連接埠 7890 與 SOCKS 連接埠 7891。這些數值並非所有用戶端的固定標準,應以用戶端「設定」→「連接埠設定」、執行日誌或目前設定中的 mixed-portportsocks-port 為準。

系統代理適合遵循 macOS 網路代理設定的應用程式,但終端機中的 curl、套件管理器、開發工具與部分跨平台應用程式可能會忽略這些設定。此時瀏覽器可以連線而終端機失敗,不代表網路擴充功能損壞。應檢查應用程式自己的代理設定,或為目前的終端機工作階段明確設定 HTTP_PROXYHTTPS_PROXYALL_PROXY

啟用 TUN 時可能出現 VPN 或網路內容過濾提示

當用戶端採用 Apple Network Extension 建立 TUN 時,macOS 可能提示應用程式想要新增 VPN 設定,或要求允許網路擴充功能。確認對話框中的應用程式名稱確實是剛才操作的用戶端後,即可允許。授權完成後,在 macOS 13 至 15 中開啟「系統設定」→「網路」→「VPN 與過濾器」,通常可以看到由該用戶端管理的項目。

有些用戶端會透過特權輔助工具建立虛擬介面或維護路由表,首次安裝服務時會要求輸入管理員帳號密碼或使用 Touch ID。此提示用於系統層級授權,不是訂閱帳號登入。輸入的是目前 Mac 管理員憑證,憑證由 macOS 驗證視窗處理,不應填寫訂閱連結、代理節點密碼或網站帳號。

正確判斷鑰匙圈提示是否可信

macOS 上有兩類容易混淆的密碼視窗。第一類是系統管理員驗證,通常顯示使用者名稱、密碼輸入欄位或 Touch ID,用於安裝輔助工具、修改網路設定或啟動特權服務。第二類是鑰匙圈存取對話框,通常會說明某個應用程式想要存取鑰匙圈中的特定項目,並提供「拒絕」、「允許」或「永遠允許」等選項。

先核對要求存取的應用程式、鑰匙圈項目與觸發動作

  1. 確認提示是否緊接著安裝服務、啟用 TUN、設定登入時啟動或儲存憑證等操作出現。
  2. 查看要求存取的應用程式名稱,是否與目前啟動的用戶端一致。
  3. 查看鑰匙圈項目名稱,是否能對應到用戶端、輔助工具或已設定的驗證資訊。
  4. 如果提示在用戶端未執行時反覆出現,先選擇「拒絕」,再檢查登入項目、舊版本殘留與鑰匙圈項目。

「永遠允許」表示日後同一簽署身分的應用程式存取該項目時,可減少重複詢問,適合已確認清楚,且用戶端正常執行確實依賴該項目的情況。若無法判斷用途,先選擇單次「允許」並觀察用戶端功能是否恢復,比直接授予長期存取權更容易定位問題。

升級後反覆詢問可能與簽署或舊項目有關

用戶端升級、應用程式名稱變更、簽署身分變更,或從不同發佈管道覆蓋安裝後,鑰匙圈可能會將新版本視為不同的要求者。先退出所有同名用戶端,確認「應用程式」中只保留準備使用的一份,再重新啟動。接著開啟「鑰匙圈存取」,在「登入」鑰匙圈中依用戶端名稱搜尋,查看項目的建立時間與「存取控制」清單。

不要一次刪除整個登入鑰匙圈。若已確認某個項目只屬於已解除安裝的舊用戶端,可以先記錄名稱,再刪除該單一項目,讓目前的用戶端重新建立。刪除後若用戶端要求重新輸入代理驗證資訊或重新安裝輔助服務,應依照目前版本的設定流程完成。

依序完成首次設定與授權

同時開啟多個開關會讓問題難以定位。較穩妥的順序是先確認用戶端與核心能夠啟動,再匯入設定,接著驗證本機連接埠,最後依序開啟系統代理或 TUN。

第一步:啟動用戶端並確認核心狀態

開啟用戶端後,先進入「設定」或「設定」→「核心設定」,查看核心是否已就緒。不同用戶端可能會將狀態放在首頁、日誌頁或服務管理頁。若日誌持續出現設定解析錯誤,應先修正設定,不要透過重複授權來解決。常見錯誤包括 YAML 縮排不正確、策略群組引用不存在的代理、規則指向未定義的 PROXY 策略群組,以及連接埠已被其他程序占用。

可以在終端機檢查常見連接埠是否已在監聽:

lsof -nP -iTCP:7890 -sTCP:LISTEN
lsof -nP -iTCP:7891 -sTCP:LISTEN
lsof -nP -iTCP:9090 -sTCP:LISTEN

78907891 常用於代理監聽,9090 則常被設定為外部控制介面,但實際連接埠必須以目前設定為準。如果同一連接埠被舊用戶端占用,應先完全退出舊用戶端,而不是任意修改多個設定檔。

第二步:匯入訂閱並選擇目前設定

  1. 進入用戶端的「設定」或「訂閱」頁面。
  2. 使用訂閱服務提供的網址匯入設定。
  3. 等待下載完成,檢查更新時間與設定名稱。
  4. 將新匯入的設定設為目前設定。
  5. 進入「代理」或「策略群組」,為需要手動選擇的策略群組指定可用節點。

匯入成功只代表用戶端取得設定檔,不等於系統流量已經進入 Clash。還需要確認核心載入成功、策略群組有可選項目,並在系統代理或 TUN 中至少開啟一種接管方式。訂閱更新也可能覆蓋訂閱內的直接修改;長期自訂規則應使用用戶端支援的覆寫、合併或腳本機制。

第三步:先測試系統代理,再決定是否啟用 TUN

開啟用戶端的「系統代理」後,可以執行 scutil --proxy 查看 macOS 目前的代理狀態。輸出中的 HTTP、HTTPS 或 SOCKS 開關應與用戶端設定相符。若用戶端顯示已開啟而系統輸出沒有變化,請檢查目前的網路服務是否已切換、用戶端是否取得修改網路設定所需的授權,以及是否有其他代理工具正在覆寫設定。

scutil --proxy
curl --proxy http://127.0.0.1:7890 https://example.org/

第二個指令會明確將要求送至本機 7890 連接埠,適合用來區分「核心與節點可用」和「終端機未採用系統代理」。如果明確指定代理後成功,但直接執行 curl https://example.org/ 失敗,應重點檢查終端機代理環境,而不是重新安裝網路擴充功能。

只有在需要接管不遵循系統代理的應用程式、UDP 流量或更完整的應用程式流量時,才考慮使用 TUN。啟用後若出現 VPN 設定或管理員驗證提示,應依照前文核對應用程式名稱與觸發動作。TUN 正常建立後,日誌通常會顯示虛擬介面、路由或 DNS 模組啟動資訊;具體介面名稱取決於用戶端與核心的實作。

授權後仍無法連線的分層排查

系統代理已開啟,但瀏覽器沒有流量

  • 檢查「系統設定」→「網路」→目前使用的 Wi-Fi 或乙太網路→「詳細資訊」→「代理伺服器」,確認伺服器是否為 127.0.0.1,連接埠是否與用戶端一致。
  • 確認用戶端核心正在執行,而不是只有介面停留在選單列。
  • 檢查瀏覽器是否安裝了獨立的代理管理擴充功能,或使用了自己的代理設定。
  • 查看規則命中日誌,確認要求不是前往 REJECT,且目標策略群組已有可用節點。
  • 暫時退出其他會修改系統代理的網路工具,避免多個程式交替寫入設定。

TUN 開啟後立即斷網

先關閉 TUN,確認基礎網路恢復,再檢查用戶端日誌中的第一則錯誤。常見方向包括虛擬介面建立失敗、路由衝突、DNS 監聽連接埠衝突及輔助服務未啟動。如果系統設定中存在多個舊用戶端留下的 VPN 設定,可以先關閉不使用的設定,但不要在未確認歸屬前批次刪除公司 VPN、遠端辦公或其他網路擴充功能。

也應檢查設定中的 DNS 部分是否與目前核心版本相容。mihomo 支援的 DNS 選項會隨版本演進,舊版 Clash 設定不一定能原樣移植。出現「欄位不存在」、「類型錯誤」或監聽位址衝突時,應依照目前用戶端內建核心的文件調整,而不是將 DNS 故障歸因於 macOS VPN 授權。

重新啟動後代理開關失效

進入「系統設定」→「一般」→「登入項目與擴充功能」,檢查用戶端是否獲准在登入時開啟,以及相關背景項目是否仍啟用。不同用戶端可能提供「開機啟動」、「靜默啟動」、「啟動後設定系統代理」三個獨立選項;只開啟第一個通常只會啟動介面,並不保證自動接管流量。

如果用戶端需要特權服務,還要在其「設定」→「服務模式」或「TUN 設定」中查看服務狀態。升級後服務版本與用戶端不一致時,優先使用用戶端提供的「重新安裝服務」或「修復服務」功能,並留意隨後出現的系統管理員驗證視窗。

退出用戶端後系統仍保留代理設定

異常退出可能來不及恢復系統代理。重新開啟同一用戶端,先開啟再關閉一次系統代理,通常可以讓用戶端執行完整清理。也可以在「系統設定」→「網路」→目前網路→「詳細資訊」→「代理伺服器」中檢查 HTTP、HTTPS 與 SOCKS 項目,確認不需要的開關已關閉。

升級、更換用戶端與解除安裝時清理權限

覆蓋升級同一用戶端前,先退出舊版本,並確認選單列圖示已消失。安裝後核對版本號、核心版本、目前設定與系統代理狀態。若新版首次啟動時再次申請網路擴充功能或輔助服務授權,應檢查應用程式簽署與來源後按需允許;系統重新確認權限不等於訂閱設定遺失。

更換用戶端時不要同時接管系統網路

在 ClashX Meta、Clash Verge Rev、FlClash 或其他用戶端之間切換時,可以先匯出需要保留的設定或記錄訂閱入口,然後在舊用戶端中依序關閉系統代理、關閉 TUN、退出應用程式。新用戶端啟動並驗證本機連接埠後,再開啟一種接管方式。兩個用戶端同時監聽 7890 或同時修改系統代理,會造成連接埠占用、狀態顯示與實際設定不一致。

解除安裝不只是將應用程式拖進垃圾桶

  1. 在用戶端內關閉系統代理與 TUN。
  2. 若用戶端提供「解除安裝服務」或「移除輔助工具」,先從設定頁執行。
  3. 退出用戶端,確認活動監視器中沒有同名程序繼續執行。
  4. 在「系統設定」→「網路」→「VPN 與過濾器」中檢查該用戶端建立的設定。
  5. 在「系統設定」→「一般」→「登入項目與擴充功能」中檢查登入項目與背景項目。
  6. 確認不再需要本機設定後,再刪除應用程式及其專屬設定資料夾。

如果只是升級或暫時排除故障,不建議先刪除全部設定。保留一份可用設定與最近的日誌,可以判斷問題出在應用程式升級、核心載入、系統權限還是訂閱內容。完成安裝後,最小驗證閉環應包括:應用程式可啟動、核心沒有設定錯誤、本機連接埠正在監聽、明確指定代理的要求成功、系統代理或 TUN 只啟用一條預期路徑,以及退出後系統網路能夠恢復。

下載Clash 依平台選擇用戶端