在 macOS 上把 VPN 用起來,難點不在點一下「連線」,而在三件事:系統擴充功能有沒有被批准、訂閱有沒有真的匯入、流量有沒有真的走這條線路。這篇指南依安裝順序走一遍,每一步都給出可以自己重現的檢查方法,不靠感覺判斷。
以下幾個數字是本文引用的事實基準,後續步驟提到的容量、價格與退款週期都以它為準。
系統 VPN 與用戶端:先分清接管方式
macOS 上有兩條完全不同的接入路徑。先認清自己用的是哪一條,後面的步驟才不會對不上。
第一條是系統內建的 VPN 設定,在 系統設定 → 網路 → VPN 裡新增,支援 IKEv2、L2TP over IPSec 這類標準協定。設定完成後由系統建立 utun 介面,全域接管流量,不需要額外用戶端;代價是沒有分流,連上之後所有流量都走同一條隧道。
第二條是訂閱服務自帶的用戶端。它透過 Network Extension 建立隧道,再在本機開一個代理連接埠,依網域或地區決定哪些流量走線路、哪些直連。跨境存取場景裡,絕大多數人用的是這一條。
| 連線方式 | 流量接管範圍 | 需要的授權 | 適合的情境 |
|---|---|---|---|
| 系統內建 VPN 設定 | 全域,所有應用程式 | 新增設定時確認一次 | 固定一條線路,不需要分流 |
| 用戶端 TUN 模式 | 全域,可依規則分流 | 網路擴充功能 + 系統擴充功能 | 瀏覽器、終端機、桌面應用程式統一走線路 |
| 用戶端系統代理模式 | 只涵蓋會讀取系統代理設定的應用程式 | 通常只需鑰匙圈授權 | 臨時使用,只想讓瀏覽器走線路 |
三種方式沒有優劣,只有是否匹配情境。只需要一條固定線路、不做分流,系統設定就夠;要讓瀏覽器、終端機、桌面應用程式統一走線路,選 TUN 模式;臨時用一下,系統代理模式最輕。
下載與安裝:先通過簽章與公證
安裝檔只從服務商官網下載。macOS 在開啟應用程式時會校驗兩樣東西:開發者簽章,以及 Apple 的公證。簽章對不上或沒有公證的安裝檔會被攔下,提示「無法打開,因為 Apple 無法檢查其是否包含惡意軟體」。
正確的順序是這樣:
- 下載磁碟映像檔或安裝檔,雙擊掛載;
- 把應用程式拖進「應用程式」資料夾,不要在掛載的映像檔裡直接執行;
- 首次開啟被攔時,到 系統設定 → 隱私與安全性,在頁面下方點「仍要打開」,再確認一次;
- 不要用關閉 Gatekeeper 的方式繞過提示,那等於對所有未簽章程式放行。
Apple Silicon 機型上,原生用戶端是通用二進位檔;如果安裝檔只有 Intel 版本,系統會透過 Rosetta 轉譯執行,能用,但多一層額外負擔,長期使用建議換回原生版本。
授權:三個彈出視窗與一個開關
網路類應用程式拿不到權限就不會運作,而權限提示往往只彈一次,點掉就沒了。裝完之後依這三處核對。
網路擴充功能
第一次點「連線」時,系統會彈出視窗說明某個應用程式想新增 VPN 設定,需要 Touch ID 或登入密碼確認。這一步同意的是「允許它建立隧道」。
系統擴充功能
macOS 11 之後,用戶端普遍改用 System Extension 取代早期的核心擴充功能。安裝後系統設定裡會出現「已阻止載入」的提示,需要手動點「允許」,部分版本要重新開機一次才生效。
登入項目與擴充功能
macOS 13 及以後,可以在 系統設定 → 一般 → 登入項目與擴充功能 裡看到網路擴充功能的開關,確認它是開啟的。
權限沒給全的典型表現有三種:連線按鈕一直轉圈;介面顯示已連線,但出口 IP 沒變;用戶端日誌裡出現 provider 啟動失敗一類的字樣。遇到這些,先回去看上面三處,而不是反覆重新安裝。
網路擴充功能權限等於把整台機器的流量交給這個程式處理。授權之前確認安裝檔來自官方管道,來源不明的用戶端不要點「允許」。
匯入訂閱:從連結到線路列表
訂閱連結通常是一串 https 位址,後面帶一長串 token。它既是設定,也是憑證。
- 在服務商面板複製訂閱連結,注意別把多餘的空格或換行帶進去;
- 打開用戶端的「訂閱」或「設定」入口,選擇從 URL 匯入;
- 貼上連結,給這份設定取一個認得出來的名字,儲存;
- 手動更新一次,等線路列表出現;
- 開啟自動更新,間隔設為 24 小時。
如果提示匯入成功但列表是空的,多半是格式不符。訂閱回傳的可能是 base64 編碼的節點列表、Clash 的 YAML,或 sing-box 的 JSON,用戶端要選對類型才能解析。另一個常見原因是連結被通訊軟體截斷,重新複製一次即可。
訂閱連結外洩,等於帳號被別人拿去用。不要把連結截圖傳到群組,也不要用線上轉換工具處理它;懷疑外洩時在面板重設訂閱位址,舊連結會立即失效。
驗證:四條指令確認線路生效
用戶端介面的「已連線」只說明隧道建立了,不說明流量真的走了這條線路。打開「終端機」,把下面四行依序貼進去。
curl -s https://ipinfo.io/ip
route -n get default
scutil --dns | grep nameserver
scutil --proxy
| 檢查項目 | 指令 | 正常結果 |
|---|---|---|
| 出口 IP | curl -s https://ipinfo.io/ip |
回傳位址與本地寬頻不同,歸屬地與所選線路一致 |
| 預設路由 | route -n get default |
TUN 模式下,interface 那一行指向 utun 開頭的介面 |
| DNS 解析器 | scutil --dns | grep nameserver |
第一順位不是路由器或電信業者的位址 |
| 系統代理 | scutil --proxy |
系統代理模式下,HTTPSProxy 指向 127.0.0.1 與本機連接埠 |
想進一步確認 DNS 沒有外洩,執行 dig +short whoami.akamai.net,它回傳的是真正發起解析的伺服器位址。如果這個位址屬於本地電信業者,說明 DNS 請求沒有走線路,需要回到用戶端把 DNS 交給隧道處理。
驗證只看一個指標:出口 IP。IP 歸屬地對上了,再看 DNS;兩者都對,才算這條線路真的在運作。
連不上時:依序排查
連線失敗大致分三類,依序排除比反覆重新安裝快。
卡在「正在連線」
先回看權限三處。權限沒問題的話,看協定:走 QUIC 的 Hysteria2、TUIC 依賴 UDP,飯店、公司網路和部分公共 Wi-Fi 會把 UDP 443 直接丟掉,表現就是一直連不上。換成基於 TCP 的 VLESS、Trojan、VMess 或 Shadowsocks,通常就能通。
連上了但網頁打不開
三個高頻原因。一是 DNS 沒有接管,網域還在本機解析,結果要麼解析失敗,要麼解析到不適合目前線路的位址;二是系統時間偏差過大,TLS 握手直接失敗,到 系統設定 → 一般 → 日期與時間 開啟自動設定;三是分流規則把目標網域判成了直連,把該網域暫時改成走線路再試。
只有部分應用程式連不上
系統代理模式只對會讀取系統代理設定的應用程式生效,終端機裡的 curl、不少開發工具和遊戲用戶端都不讀它。需要全域涵蓋時切到 TUN 模式,或給終端機單獨設定代理環境變數。這是模式差異,不是線路故障。
- ✅ 出口 IP 與所選線路的歸屬地一致
- ✅
scutil --dns的第一順位解析器不是本地電信業者 - ✅ 中斷連線後網頁立刻恢復直連,沒有殘留路由
- ✅ 訂閱自動更新已開啟,間隔 24 小時
- ❌ 不要用關閉 Gatekeeper 的方式解決「無法打開」
- ❌ 不要把訂閱連結傳進公開群組或工單截圖
長期使用:協定取捨與分流規則
日常使用有三件事值得一次設好。
按需連線
筆電闔上上蓋再打開、切換 Wi-Fi 之後,用戶端需要重新建立隧道。開啟按需連線可以讓系統在網路變化時自動重連,省掉手動點一次的動作。
協定取捨
TCP 系協定(VLESS、Trojan、VMess、Shadowsocks)在封包遺失嚴重的網路裡更穩;QUIC 系的 Hysteria2、TUIC 在高延遲線路上吞吐量更好,前提是 UDP 不被攔。同一份訂閱裡通常兩種都有,依目前網路換著試,比死守一個更實際。
分流與 DNS
分流規則依「網域優先、地區備援」的順序寫,常用網站直連,減少繞路;DNS 交給用戶端處理,避免系統解析器和用戶端各走一套。
線路類型怎麼看
IEPL 專線走的是點對點專線,不經過公共網際網路的壅塞節點;中轉是入口節點再轉發到出口;直連則是用戶端直接連出口伺服器。三者差別在穩定性和繞路程度上,哪條更快只能在你自已常用的網路裡試,別人的測速數字參考價值有限。
VPNVL 在這些項目上不需要額外設定:120+ 國家、180+ 線路,不限裝置數,多台裝置可以同時在線;註冊只要使用者名稱和密碼,無需電子郵件地址;月訂閱 ¥9.9 起含 60GB,¥18 含 250GB,¥28 含 500GB,流量依開通日每月重置;流量包用完為止、永久不會過期;首次付款後 60 天內可申請無條件退款;付款支援支付寶、微信、USDT。服務端的隱私政策是不記錄日誌。
對大多數 macOS 使用者來說,用戶端 TUN 模式、訂閱自動更新、出口 IP 自我檢查,這三件事做好,日常的跨境存取就夠用了。