Mac 上的 vpn 开关

更新于 · 作者

hop 不是 vpn,也不卖 vpn。它把你的 Mac 已经知道的那些连接列出来——无论出自哪一家——每一个配一个开关,于是打开一个 vpn,不再意味着去开一个你一周才碰两次的应用。

macOS 菜单栏中的 hop 面板:vpn switcher
vpn switcher in hop at a glance
what it isvpn switcher inside hop, a menu bar app for macOS
pricefree — no trial, no pro tier, no account
licenceMIT, source on GitHub
requiresmacOS 14 or later, Apple silicon or Intel
works offlineyes
data sent anywherenone
download hopfree · macOS 14+ · Apple silicon and Intel

vpn 开关是什么,hop 又不是什么

hop 不是 vpn。它没有服务器,不卖订阅,不转发流量,也没法让你匿名。如果你要找的是一项 vpn 服务,这里没有,应用的任何部分也不会变成那个。

它做的事,是切换你的 Mac 已经知道的那些连接。隧道由 macOS 维持,和你在系统设置里把它打开时一模一样。

这张列表是从哪儿来的

列表直接来自系统设置:一个是你自己配的,一个是某个客户端装上的,一个来自你付费的服务。只要 macOS 知道它,它就带着开关出现在这里;你删掉一个,它自己就消失——没有什么要添加,也不用等谁来支持你这一家供应商。

你的流量一点都不经过 hop。这不是一句关于我们服务器的承诺,因为根本没有服务器。

免费路径:macOS 的 vpn 菜单和 scutil

在说 hop 之前:macOS 本来就能做到这里的大部分,一分钱不花,装作不是这样,也撑不过你打开系统设置的那一刻。免费的办法有两个,而且不管你最后用哪一个,它们都有用。

内置的 vpn 菜单给你什么

macOS 自己有一个 vpn 状态菜单。把它显示出来之后,菜单栏里就有一项能连接、断开,并在系统持有的那些服务之间切换——用不着第三个应用。

Apple 用一句话说完了它,而这句话就是这个功能的全部(英文页面): 在 Mac 上连接到 vpn

所以你只有一个配置、又想要一个菜单的话,就停在这里:把那个菜单打开,事情就办完了。它不做的事,是告诉你关于这条隧道的任何超出「已连接」的信息;而且它管的是系统自己管着的那些服务——一个自带菜单栏图标的客户端照样自带着它,于是你要读的是两个图标,而不是一个。

用命令行切换 vpn

第二种免费办法是 scutil,它值得比现在更多的注意。scutil --nc list 会把当前集合里的每一个连接都打印出来——在核对这一页的那台 Mac 上打出了五个,其中两个是作为网络扩展装上的客户端,还有一条没人清理过的旧调制解调器记录。每一行都带着你要传给下一条命令的名字:scutil --nc start「名称」把它拉起来,scutil --nc stop「名称」把它放下。不用 sudo,大约五秒钟。把它塞进一个快捷指令,你就有了一个白来的开关。

代价还是老一套:得知道有这么一条命令,还得知道那个服务确切的名字——包括客户端给它起的名字,以及它用的是哪种语言。

那你到底需要哪一个

只有一个配置,一天开关两次:用内置菜单,别的都不用。简单的情况止于第二个客户端出现的时候,或者止于问题不再是「它开着吗」、而是「有东西在里面走吗」的时候——第二个问题,两条免费路径都答不上来。

你手上的情况免费路径用 hop
macOS 自己持有的一个 vpn 配置把内置的 vpn 菜单打开——点两下,什么都不用装用不上,留着那个菜单
来自三个不同客户端的四个配置每个客户端各带一个菜单栏图标,否则你得为 scutil 记住每一个名字一张列表,每个一个开关,无论出自哪一家
不打开任何东西,就想看到隧道是通的内置菜单管系统持有的那些,各家客户端各管各的一个图标上的一个圆点,同时代表所有的
你想知道流量是真的在走隔一会儿跑两次 scutil --nc statistics——而且你得先起疑心才会去跑圆点自己变成橙色,那会儿你正在读别的东西
为一个一周碰两次的开关,客户端整天待在程序坞里退出它,它的菜单栏图标也跟着没了需要它的窗口时点一下名称,关掉窗口 hop 就把这个应用退出

怎么从菜单栏切换 vpn

Mac 知道的每一个连接都在同一张列表里,旁边一个开关,不管是谁配的;菜单栏图标上的一个圆点说明有没有隧道立着。没有厂商窗口要开,不用去系统设置跑一趟,也不会半小时之后还在琢磨那东西是不是还开着。

圆点的颜色各是什么意思,包括隧道立着却什么都不通的那一种——说明书这一头的内容,你自己语言的版本: 说明里的 vpn 开关

这一行显示的是客户端自己报上来的:它的名称,以及括号里配置附带的东西,通常是国家。hop 从不根据服务器地址去猜国家——地址注册信息说的是一段地址登记在哪儿,不是那台机器站在哪儿,而一个说得斩钉截铁的错国家,比什么都不说更糟。

download hopfree · macOS 14+ · Apple silicon and Intel

一条连着、却什么都不通的 vpn

值得抓住的是那种不声不响的故障。一条死了却没断开的隧道,会让一切看上去都正常:客户端说已连接,图标说已连接,而什么都过不去。你是十分钟之后、某个页面打不开时才发现的。

菜单栏图标上的圆点,在流量正从隧道里走时是绿色的,隧道开着而什么都回不来时变成橙色。面板会标出它说的是哪一行,所以有好几个配置时,你知道是哪一个死了。连着但不通流量,和连着是两种状态,这里也就照两种来显示。这个圆点可以在设置里关掉,开关照常好用。

为什么「已连接」不是关于流量的答案

这不是客户端的缺陷。直接问系统,你得到的是同样的答非所问:对一条活着的隧道跑 scutil --nc status,它打出「Connected」,然后是上百行细节——dns 服务器、地址、排除的路由、连过多少次——却没有任何一个字段说最近有没有一个包动过。一条死掉的隧道打出来的是同一个词。

唯一答得上来的是 scutil --nc statistics,而它的答法是数字节和包。这些计数是累计的,所以跑一次什么也说明不了:你跑一次,等一会儿,再跑一次,然后比较。为这一页做的核对里,字节计数在四秒钟内动了大约 130 万——一条活着的隧道。死掉的那条会把同一个数重复一遍。

橙色圆点的全部依据就是这个:两次你本来得动手去做的测量,被连续地做着,而答案被放在你本来就在看的地方。

隧道活着、只是慢,而不是死了的时候,问题是另一个,测法也是另一套: 网速测试

这些协议本身就是有意这么造的——WireGuard 在没人使用时什么都不发,它的保活默认是关着的(英文页面): WireGuard 快速上手:持续保活

供应商自己的应用,只在你需要的时候

有时候你确实需要那个真正的客户端——挑一个国家,或者改一项设置。点一下这个连接的名称,它的窗口就打开。关掉窗口,hop 会替你把这个应用退出,于是它不再为了一个你一周碰两次的开关,一直住在你的程序坞里。

连接不会断,而这正是人们以为有诈的地方:并没有。第三方客户端是通过 Apple 的网络扩展框架装上它的隧道的,所以跑它的是系统,不是那个应用的窗口。退出 hop 同样不会让你的连接掉线。

Apple 自己说明了第三方 vpn 客户端在 macOS 上住在哪里(英文页面): vpn 概述,Apple 平台部署

这个 vpn 开关修不了什么

hop 不修 dns,不改路由,不跟你的供应商打交道,也不会替你把一条隧道重新连上。一个声称能让 vpn 熬过睡眠的应用,声称的是系统根本没提供的东西。

变的是你不明就里的那段时间有多长。修起来横竖都是免费的;能省掉的,是你在怀疑到隧道之前,花在浏览器、Wi-Fi 和路由器上的那二十分钟。

frequently asked questions

hop 是 vpn 吗?
不是。它不转发流量,不卖服务,也没有服务器。它切换的是你的 Mac 已经知道的那些连接。
有没有免费的办法从菜单栏切换 vpn?
有,两个。macOS 自己有一个 vpn 状态菜单,而 scutil --nc start 和 stop 能在命令行里做到,不用 sudo。两者都不会告诉你的,是里面有没有东西在走。
它支持我的供应商吗?
只要这个连接出现在 macOS 的系统设置里,它就出现在这里。列表来自系统,所以是哪一家并不要紧。
它能管好几个 vpn 配置吗?
能——你的 Mac 知道的每一个连接都是一行,各有各的开关,不管是哪个客户端装上的。这一行显示名称,以及括号里配置附带的东西。
我怎么知道 vpn 是真的在工作?
连着不等于在工作。用手做,得隔一会儿跑两次 scutil --nc statistics 再比较。在 hop 里,隧道立着而什么都回不来时,圆点会变成橙色。
橙色的圆点是什么意思?
隧道立着,但流量过不去——就是那种不声不响的故障,否则要等到某个页面打不开时才被发现。
我的流量会经过 hop 吗?
不会。这个连接由 macOS 持有,和你在系统设置里把它打开时一模一样。

other tools in hop

  • app firewallsee which programs go online, and where — block any of them with one click.
  • window layoutseighteen zones, one click or one hotkey.
  • draw on screena transparent layer over the live screen, seen by everyone on the call.

关于作者

hop 的作者 Anton Shakirov

开发 hop

开发 hop,也编写本站的每一页。十九个工具收在一个菜单栏图标下,MIT 许可,源码公开。issue 和邮件都由他本人阅读和回复。

download hopfree · macOS 14+ · Apple silicon and Intel