先分清 macOS 的三類權限
FlClash 在 macOS 上可能會觸發 Gatekeeper、管理員授權、VPN 或網路延伸功能核准。這些提示對應不同的系統元件,不能一概視為同一個密碼視窗。只使用系統代理伺服器時,通常只需完成應用程式啟動與代理設定;啟用 TUN 模式後,才會進一步涉及虛擬網路介面、路由與 DNS 接管。
| 提示類型 | 出現階段 | 處理位置 |
|---|---|---|
| 無法驗證開發者或無法開啟 | 首次啟動應用程式 | 「系統設定」→「隱私權與安全性」 |
| 管理員名稱與密碼 | 安裝輔助元件或啟用 TUN | macOS 系統授權視窗 |
| 加入 VPN 設定或網路延伸功能 | 首次開啟 TUN | 「系統設定」→「網路」→「VPN」或延伸功能管理頁面 |
| 存取鑰匙圈中的項目 | 讀取已儲存的憑證或元件身分變更 | 「鑰匙圈存取」應用程式 |
安裝前檢查:晶片、安裝位置與舊版狀態
確認 Apple 晶片或 Intel 架構
開啟「蘋果選單」→「關於這台 Mac」。若晶片欄顯示 Apple M1、M2、M3、M4 或後續 Apple 系列,應選擇 arm64 安裝檔;若處理器欄顯示 Intel,則應選擇 x64 或 amd64 安裝檔。架構選錯通常會表現為應用程式無法啟動、啟動後立即結束,或必須透過 Rosetta 轉譯。
將應用程式移至「應用程式」
- 開啟下載的 DMG 或解壓縮後的資料夾。
- 將 FlClash 拖曳至 Finder 側邊欄的「應用程式」。
- 從「應用程式」資料夾啟動,避免長期從 DMG、下載資料夾或外接磁碟執行。
- 若舊版仍在執行,請先從選單列結束程式,再替換應用程式檔案。
固定安裝路徑非常重要。macOS 會綜合鑰匙圈存取控制、程式碼簽署身分與應用程式路徑來判斷授權。若每次都從不同資料夾啟動應用程式,系統可能反覆詢問是否允許存取同一個鑰匙圈項目。
升級前先關閉代理伺服器
若系統代理伺服器仍指向舊程序,直接覆蓋應用程式可能留下無法使用的本機代理位址。建議先在 FlClash 中關閉系統代理伺服器與 TUN,再結束應用程式。系統代理伺服器常見的監聽位址是 127.0.0.1:7890,但實際連接埠以目前設定中的 mixed-port 為準。
正確處理「無法驗證開發者」與「應用程式已損壞」
首次啟動遭到阻擋時,先在 Finder 的「應用程式」中找到 FlClash,按住 Control 鍵點按應用程式圖示,選擇「開啟」。若仍被 Gatekeeper 阻擋,請進入「系統設定」→「隱私權與安全性」,向下找到剛才遭阻擋的應用程式紀錄,按一下「仍要開啟」,再使用登入密碼或 Touch ID 確認。
- 只有在剛主動啟動 FlClash 後,才處理這筆阻擋紀錄。
- 核對對話框中的應用程式名稱是否與 Finder 裡的檔案一致。
- 完成一次允許操作後,從「應用程式」重新開啟。
- 不要反覆解壓縮到新資料夾,否則系統可能會將它視為新的應用程式副本。
如果「隱私權與安全性」頁面沒有出現「仍要開啟」,請先從 Finder 再啟動一次,讓系統建立對應紀錄。受企業管理的 Mac 也可能受到 MDM 政策限制,此時按鈕會被隱藏或停用,需要由裝置管理員核准應用程式,而不是修改本機一般使用者的設定。
網路延伸功能授權:從系統代理伺服器到 TUN
系統代理伺服器模式的適用範圍
系統代理伺服器模式會將 macOS 的 HTTP、HTTPS 或 SOCKS 代理伺服器指向本機監聽連接埠。常見設定是 127.0.0.1:7890,控制介面常見為 127.0.0.1:9090。控制介面用於用戶端與 mihomo 核心通訊,不應填入網頁代理伺服器連接埠。
mixed-port: 7890
mode: rule
allow-lan: false
external-controller: 127.0.0.1:9090
使用這類設定時,Safari、Chrome 與會讀取系統代理伺服器的應用程式會套用規則分流。終端機中的 curl、套件管理器或某些遊戲不一定會讀取系統代理設定,因此「瀏覽器可用、終端機直連」不一定是故障。
首次開啟 TUN 的核准順序
進入 FlClash 的「設定」→「網路設定」,開啟 TUN 模式。不同 macOS 版本可能依序顯示管理員授權、加入 VPN 設定、允許網路延伸功能等步驟。對話框出現後請保持 FlClash 執行,不要連續點按開關,以免同時建立多筆授權請求。
- 在管理員授權視窗輸入目前 Mac 管理員帳號的密碼。
- 系統詢問是否允許加入 VPN 設定時,選擇允許。
- macOS 15 及後續版本可前往「系統設定」→「一般」→「登入項目與延伸功能」→「網路延伸功能」檢查狀態。
- macOS 13、14 若顯示核准通知,請進入「系統設定」→「隱私權與安全性」完成允許。
- 回到「系統設定」→「網路」→「VPN」,確認沒有同名項目持續在連線與中斷之間循環。
- 返回 FlClash,等待核心啟動後再測試連線。
授權成功後,系統通常會建立 utun 虛擬介面。編號並不固定,可能是 utun3、utun7 或其他值;編號變動不代表安裝異常。真正需要檢查的是預設路由、DNS 請求,以及 FlClash 核心是否同步處於執行狀態。
mihomo TUN 設定的關鍵欄位
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
dns:
enable: true
listen: 127.0.0.1:1053
enhanced-mode: fake-ip
auto-route 用於自動寫入路由,auto-detect-interface 用於識別目前的出口網卡,dns-hijack 則會將指定的 DNS 流量交由核心處理。FlClash 可能根據介面設定產生執行設定,因此不要在訂閱檔案與介面中同時維護兩套互相衝突的 TUN 欄位。
鑰匙圈反覆要求密碼:找出請求來源
看到鑰匙圈對話框時,首先要確認「哪個程序正在請求哪個項目」。正常的系統視窗會顯示項目名稱以及提出存取要求的應用程式。若 FlClash 尚未啟動就出現對話框,請先檢查登入項目、舊版輔助元件與其他網路工具,不要直接將請求歸因於目前的應用程式。
先嘗試一次性選擇「允許」
第一次出現時可先選擇「允許」,輸入目前的 macOS 登入密碼,然後觀察同一操作是否再次觸發。只有確認應用程式位於固定的 /Applications 路徑、請求項目明確,且後續確實需要持續存取時,才考慮選擇「永遠允許」。若應用程式剛被替換、移動或簽署身分發生變更,鑰匙圈可能會再次要求確認。
檢查「登入」鑰匙圈是否鎖定
- 開啟「應用程式」→「工具程式」→「鑰匙圈存取」。
- 在左側選擇「登入」鑰匙圈。
- 若鑰匙圈顯示為鎖定,請按右鍵選擇解鎖,並輸入目前的登入密碼。
- 依照對話框顯示的項目名稱搜尋,不要臆測後批次刪除憑證或密碼。
- 按兩下目標項目,在「存取控制」中檢查是否仍保留舊應用程式路徑。
Mac 登入密碼變更後,登入鑰匙圈的密碼可能仍是舊密碼。典型情況是使用新密碼成功登入系統,但多個應用程式持續要求輸入舊的鑰匙圈密碼。此時應先嘗試修改「登入」鑰匙圈密碼,使其與目前帳號密碼一致。重設預設鑰匙圈會影響瀏覽器密碼、Wi-Fi 憑證及其他應用程式的儲存項目,應作為最後手段,並在操作前確認已有可用的備份。
避免三種重複觸發情況
- 不要同時保留位於不同資料夾的多個 FlClash.app,並輪流啟動。
- 升級時先結束舊程序,再覆蓋「應用程式」中的現有版本。
- 刪除鑰匙圈項目後,應同步重新啟動應用程式;不要讓舊程序繼續持有失效的參照。
授權完成後的四項驗證
驗證本機監聽連接埠
在 FlClash 中確認核心狀態為執行中,再開啟終端機執行以下指令。若設定使用的不是 7890,請替換為實際的 mixed-port。
lsof -nP -iTCP:7890 -sTCP:LISTEN
curl -I -x http://127.0.0.1:7890 https://example.com
第一個指令應顯示對應的核心程序正在監聽,第二個指令應回傳 HTTP 回應標頭。若連接埠沒有監聽,請重點檢查核心啟動記錄;若連接埠正在監聽但請求逾時,再檢查訂閱節點、策略群組選擇與規則命中情況。
檢查系統代理設定是否殘留
開啟「系統設定」→「網路」→目前使用的 Wi-Fi 或乙太網路→「詳細資訊」→「代理伺服器」。FlClash 開啟系統代理伺服器時,這裡可能會顯示本機位址與連接埠。結束應用程式後若仍保留 127.0.0.1:7890,所有讀取系統代理設定的程式都會嘗試連線到已停止的連接埠。
檢查網路延伸功能與 VPN 狀態
systemextensionsctl list
scutil --nc list
ifconfig | grep utun
systemextensionsctl list 用於查看已登錄的系統延伸功能,scutil --nc list 可列出網路連線服務,最後一個指令則用於確認目前是否存在 utun 介面。系統本身與其他 VPN 也會建立 utun,因此不能僅憑介面存在,就判斷它屬於 FlClash。
驗證規則,不要只看 IP
選擇規則模式後,分別存取一個應直連的網站和一個應走代理伺服器的網站,再查看 FlClash 連線記錄中的規則名稱、策略群組與出口節點。只檢查出口 IP 無法發現規則誤判。例如 DIRECT 規則優先順序過高時,TUN 與網路延伸功能都可能正常,但目標網域仍會直連。
常見故障與對應處理方式
網路延伸功能已允許,TUN 仍無法啟動
- 結束其他 VPN、舊版 Clash 用戶端與企業代理伺服器後再試。
- 關閉 TUN,結束 FlClash,等待 10 秒後重新啟動。
- 確認應用程式仍位於「應用程式」資料夾,而不是 DMG 掛載磁碟區。
- 檢查設定中是否同時存在重複的 DNS 監聽連接埠。
- 若
127.0.0.1:1053已被其他程序占用,請調整 DNS 監聽設定或停止衝突程序。
開啟後區域網路裝置無法存取
TUN 自動路由可能會改變區域網路流量的比對方式。設定中應保留私有位址直連規則,例如 IP-CIDR,192.168.0.0/16,DIRECT,no-resolve、IP-CIDR,10.0.0.0/8,DIRECT,no-resolve 和 IP-CIDR,172.16.0.0/12,DIRECT,no-resolve。使用區域網路網域名稱存取印表機或 NAS 時,還要檢查 DNS 是否能解析本地域名。
睡眠喚醒後顯示已連線但無法存取
Wi-Fi 切換、變更熱點或從睡眠喚醒後,舊的預設介面可能已失效。先關閉再開啟 TUN,讓 auto-detect-interface 重新識別出口。若問題只在從有線網路切換至 Wi-Fi 後發生,可結束應用程式再重新啟動,以便重新建立路由與 DNS 狀態。
關閉系統代理伺服器後仍然經過代理
檢查是否仍開啟 TUN,或瀏覽器是否設定了獨立的代理擴充功能。系統代理伺服器、應用程式內代理與 TUN 是三條不同路徑。關閉其中一項,不代表其餘兩項也已停止。終端機還應檢查 HTTP_PROXY、HTTPS_PROXY 與 ALL_PROXY 環境變數是否仍指向本機連接埠。
解除安裝與重新安裝:清除 VPN、延伸功能與代理殘留
直接將 FlClash.app 拖入垃圾桶,只會移除應用程式本體。若先前啟用過 TUN 或系統代理伺服器,應先還原網路設定,再刪除應用程式。如此可避免重裝前持續保留失效的本機連接埠、VPN 項目或舊輔助元件授權。
- 在 FlClash 中關閉系統代理伺服器。
- 關閉 TUN 模式,等待狀態完成切換。
- 結束 FlClash,確認選單列圖示與相關程序都已結束。
- 進入「系統設定」→「網路」→「VPN」,刪除確認屬於舊安裝的項目。
- 在 macOS 15 及後續版本進入「一般」→「登入項目與延伸功能」→「網路延伸功能」,檢查舊項目的狀態。
- 進入目前網路的「詳細資訊」→「代理伺服器」,清除仍指向
127.0.0.1舊連接埠的設定。 - 最後刪除「應用程式」中的 FlClash.app,並重新啟動 Mac。
企業裝置也可能安裝描述檔。可在「系統設定」→「一般」→「裝置管理」中查看;只有明確知道描述檔來源與用途時才刪除。由公司或學校部署的網路設定應交由管理員處理,避免同時影響憑證、Wi-Fi 與其他安全性政策。
profiles list
scutil --proxy
ps aux | grep -i clash
profiles list 用於檢查設定描述檔,scutil --proxy 用於查看目前系統代理伺服器狀態,最後一個指令則用於確認是否仍有名稱包含 Clash 的程序。指令結果可能包含其他用戶端或歷史元件,刪除前必須先核對路徑。
建議的穩定安裝順序
- 依晶片架構下載對應的安裝檔。
- 將 FlClash 移至「應用程式」,再從固定位置啟動。
- 完成 Gatekeeper 允許操作並匯入訂閱。
- 先使用系統代理伺服器驗證節點、DNS 與規則。
- 確認
127.0.0.1:7890等實際監聽連接埠運作正常。 - 確實需要全域接管時,再啟用 TUN 並完成網路延伸功能授權。
- 透過連線記錄核對規則命中情況,不要只看介面開關。
這套順序將應用程式啟動、訂閱可用性、系統代理伺服器與 TUN 分成四個階段。某個步驟失敗時,可以直接定位到對應層級,不必反覆刪除應用程式或重設所有網路設定。