在 macOS 上挑一款 VPN,難點通常不在價格,而在系統權限:裝得上不等於授權通過,授權通過也不等於 M 系列晶片上能穩定重連。這篇 macOS VPN 推薦依「權限、擴充功能、晶片相容、訂閱匯入、分流」的順序拆開來講,每一步都給出可驗證的結果,讀完可以對照自己的機器直接排查。

適用對象有兩類:第一次在 Mac 上裝用戶端的人,以及裝過但被「系統擴充功能已封鎖載入」卡住、或者系統大版本更新後突然連不上的人。

macOS 上的 VPN 由哪幾層組成

一條通道在 macOS 上通常由三部分組成:選單列裡的用戶端介面、負責建立通道的網路擴充功能,以及系統網路堆疊裡多出來的 utun 介面與隨之改寫的路由與 DNS。介面只是遙控器,真正在做事的是擴充功能。

這也是 macOS 裝 VPN 比裝一般 App 多一步的原因:用戶端要把一個系統層級元件註冊進系統,由使用者手動核准。早期方案用核心擴充功能(kext)實作,需要降低開機安全性才能載入,Apple 早已把這條路標為棄用,在 Apple silicon 上基本上不可行。現在正規用戶端走的是系統擴充功能加 NetworkExtension 框架,權限模型更窄,載入前必須經過簽章驗證。

在「系統設定 → 一般 → 登入項目與擴充功能 → 網路擴充功能」裡看到的項目,就是通道本體。它被關掉時,用戶端介面照樣能開啟、能點連線,但連線會立刻失敗或者一直轉圈,這是最常被誤判成「服務掛了」的一幕。

安裝後必須過的三道授權

首次安裝並啟動用戶端後,依序確認下面幾項。缺任何一項,後面都會以「連不上」的形式出現。

如果擴充功能清單裡出現同名但版本更舊的項目,先移除再重裝。殘留項目會佔住註冊位置,新版本裝上了也不會生效,而且錯誤訊息通常不會說明原因。

授權失敗的排查順序

點了「允許」還是連不上,依下面順序走,通常五分鐘內能定位到具體環節。

  1. 確認是否真的需要重新開機:部分系統版本要求重新開機後擴充功能才載入,提示框裡會寫明,別跳過。
  2. 開啟「登入項目與擴充功能 → 網路擴充功能」,看項目是勾選狀態還是灰色不可用。灰色通常意味著簽章驗證未通過或系統版本不支援。
  3. 檢查機器是否被描述檔或 MDM 管理:被管理的裝置,擴充功能白名單由管理方下發,個人無法自行核准。
  4. 暫時關閉第三方安全軟體與清理工具再試:它們會攔截系統層級元件的註冊流程。
  5. 徹底解除安裝後重裝:用用戶端自帶的解除安裝入口,或刪除 App 後一併清理其擴充功能項目,而不是把圖示拖進垃圾桶了事。

判斷順序:擴充功能未核准,用戶端能開但連不上;擴充功能已核准但網路擴充功能未勾選,連線秒斷;兩者都正常,問題就在線路、DNS 或分流規則上。

M 系列晶片的相容要點

換到 Apple silicon 之後,相容性問題基本上集中在下面四處,逐條對照即可。

原生 arm64 與 Rosetta 2

純 Intel 版本的用戶端靠 Rosetta 2 轉譯可以執行,但網路擴充功能屬於系統層級元件,在轉譯層下註冊與喚醒的行為都不夠穩定。優先選同時提供 arm64 與 x86_64 的通用版本;只提供 kext 的舊用戶端在 Apple silicon 上可以直接排除。

睡眠喚醒後的重連

闔蓋休眠會拆掉通道,好的用戶端在喚醒後自動重建。如果每次都要手動點一次連線,先看「登入項目」裡用戶端是否被允許背景執行,再看用戶端自身的「喚醒後自動連線」開關是否開啟。

能效與低耗電模式

加解密由 CPU 完成,長時間掛著通道對電池續航有明顯影響。開啟低耗電模式後系統會壓低背景活動,如果發現喚醒後重連變慢,可以先關掉它做對照,再判斷是不是用戶端本身的問題。

系統版本

網路擴充功能的授權介面在大版本之間挪過位置,舊系統對新版擴充功能 API 的支援也不完整。把系統保持在仍在安全更新期內的版本,能省掉一大半「莫名其妙連不上」的麻煩。

訂閱怎麼匯入 macOS 用戶端

macOS 用戶端大致兩類:廠商自研的原生 App,安裝後登入或貼上訂閱連結即可;以及設定檔驅動的通用用戶端,需要自己維護規則。兩類都支援訂閱連結,差別只在入口位置。

  1. 在使用者面板複製訂閱連結,整行複製,不要截斷,也不要轉發給他人,連結本身就是憑證。
  2. 在用戶端裡找到「新增訂閱」或「從連結匯入」,貼上後儲存並更新一次,讓節點清單重新整理出來。
  3. 選一條線路連線。首次連線會再彈一次網路設定授權,選擇允許。
  4. 驗證是否真的接管了流量,用下面三條指令對照。
ifconfig | grep -E "^utun"
scutil --dns | grep nameserver
route -n get default

判斷標準:出現新的 utun 介面;scutil --dns 輸出的第一個 resolver 指向通道內的位址;route -n get default 的 interface 是 utun 開頭。若使用分流模式,預設路由可能仍留在實體網卡上,這是正常的,此時要看的是目標網段有沒有被單獨路由進通道。

分流規則與 DNS 外洩

DNS 外洩指的是通道已經建好,網域名稱解析卻仍然走當地電信業者。查詢封包從實體網卡出去,結果既可能被污染,也會把存取意圖暴露給本地網路,還會讓「連上了但打不開」變成常態。驗證方法很簡單:scutil --dns 看第一個 resolver 的 nameserver 是不是通道內位址,或者用兩台裝置分別查一次出口與 DNS 歸屬做對照。

分流(規則模式)是 macOS 上更實用的預設:常用網站直連,其餘走通道,速度與相容性都更好。全域模式留給排障用,當你懷疑「是不是規則寫錯了」,切全域再試一次,能快速把問題歸因到規則還是線路。

無論哪種模式,私有網段都要放行直連:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。否則 AirDrop、區域網路印表機和 NAS 會一起失聯,很多人把它誤判成「VPN 把網卡搞壞了」。

與 Apple 服務共存的四個注意點

iCloud 私密轉送

私密轉送本身也走代理,和 VPN 同時開啟會爭搶代理設定,表現為部分網站能開、部分一直轉圈。兩者二選一,或在使用 VPN 時關掉私密轉送。

限制 IP 位址追蹤

Safari 的這項功能會改寫部分請求路徑。排查「只有瀏覽器打不開」的問題時,先關掉它做對照,再判斷是不是通道的 DNS 出了問題。

商店與媒體庫區域

App Store、Apple Music 的區域跟隨帳號,不跟隨出口 IP。換線路不會改變商店區域,也不會讓已購內容重新授權,這一點經常被誤解。

時間與憑證

系統時間偏差會導致 TLS 握手失敗,症狀是「顯示已連線,但所有網頁都打不開」。先確認「日期與時間」是自動同步,再去懷疑線路。

線路類型與使用情境對照

選線路之前先分情境。三類線路的差別不在「快不快」,而在路徑與壅塞。

線路類型 路徑特點 適合情境 需要注意
直連 入口與出口在同一地區,路徑最短 就近存取、輕量網頁與文件 跨境段品質取決於當地電信業者
中轉 先接入中轉節點,再出國際段 本地到出口鏈路品質差時的折衷方案 多一跳,延遲略高於專線
IEPL 專線 獨立鏈路,不經過公共網際網路壅塞段 視訊會議、直播、晚間尖峰時段的長連線 成本高,通常只在高價值地區部署

再補一條經驗:視訊會議對封包遺失比對延遲更敏感,直播更怕抖動,大檔案下載只看頻寬。三類需求對應的線路選擇並不相同,不必用一條線路打天下。具體到地區與城市,可以在線路頁依情境篩選。

在 VPNAF 這邊怎麼選

VPNAF 覆蓋 90+ 國家、160+ 線路,macOS 用戶端走系統擴充功能,授權一次之後可以設為開機自動連線,之後只需要在需要時切換線路。

90+ 覆蓋國家與地區
160+ 線路,含直連、中轉與專線
60 天 無理由退款

計費上,月訂閱分三種:¥9.9 含 60GB、¥18 含 250GB、¥28 含 500GB,流量依啟用日每月重置,中途升級按差價折算剩餘天數。流量包三種:¥158/300GB、¥358/1000GB、¥658/3000GB,用完為止,永久不過期。付款支援支付寶、微信與 USDT,續費和升級都在面板裡完成。

註冊只需要使用者名稱和密碼,無需電子郵件地址;同一帳號不限台數,Mac 與行動裝置可以同時上線。訂閱期內不滿意,60 天內可以無理由退款。方案級距與流量包的完整對照在方案頁。

常見問題速查

顯示已連線,但瀏覽器打不開網頁

依序查 DNS、系統時間、分流規則三項。三者都排除之後,再換一條線路做對照,基本就能確定問題出在通道還是線路。

每次開機都要手動連一次

把用戶端加入登入項目,並開啟「開機自動連線」。若仍不生效,檢查是否被低耗電模式或第三方清理工具限制了背景啟動。

系統大版本更新後連不上

更新會重置部分擴充功能授權。回到「登入項目與擴充功能」重新核准一次,通常就能恢復,不需要重裝用戶端。

Intel Mac 還能繼續用嗎

能。選仍在維護、提供通用二進位檔的用戶端即可;只提供核心擴充功能的舊版本不建議繼續使用,後續系統更新隨時可能徹底失效。

一句話結論:macOS 上的 VPN 連不上,先查權限,擴充功能是否被允許、網路擴充功能是否勾選;權限確認無誤,再去比線路與方案。