переключатель vpn для Mac
обновлено · автор Anton Shakirov
hop — не vpn и не продаёт vpn. он показывает подключения, о которых ваш Mac уже знает, чьи бы они ни были, и даёт каждому переключатель, так что «включить» перестаёт означать «открыть приложение, к которому подходишь дважды в неделю».

| what it is | vpn switcher inside hop, a menu bar app for macOS |
|---|---|
| price | free — no trial, no pro tier, no account |
| licence | MIT, source on GitHub |
| requires | macOS 14 or later, Apple silicon or Intel |
| works offline | yes |
| data sent anywhere | none |
что такое переключатель vpn и чем hop не является
hop — не vpn. у него нет серверов, он не продаёт подписку, не гоняет через себя трафик и не сделает вас анонимным. если вы ищете vpn-сервис, это не он, и никакая часть приложения им не станет.
что он делает — переключает подключения, о которых ваш Mac уже знает. туннель держит macOS, ровно так же, как если бы вы включили его в «Системных настройках».
откуда берётся список
список приходит прямо из «Системных настроек»: то, что вы настроили сами, то, что прописал чей-то клиент, то, за что вы платите сервису. если macOS о подключении знает, оно появляется здесь с переключателем, а удалённое исчезает само — добавлять нечего, и ждать поддержки именно вашего провайдера не нужно.
ничего из вашего трафика через hop не проходит. это не обещание про наши серверы: их нет.
бесплатный путь: меню vpn в macOS и scutil
прежде чем говорить про hop: почти всё это macOS уже умеет, стоит это ноль, и притворяться иначе хватило бы ровно до того момента, когда вы откроете «Системные настройки». бесплатных способов два, и оба пригодятся, чем бы вы в итоге ни пользовались.
что даёт встроенное меню vpn
у macOS есть собственное меню состояния vpn. когда оно показано, в строке меню появляется пункт, который подключает, отключает и переключает между сервисами, которыми ведает система, — без всякого третьего приложения.
Apple описывает это одной строкой, и строка — это вся функция целиком (страница английская): как подключиться к vpn на Mac
так что если у вас одна конфигурация и вы хотите её в меню — остановитесь здесь: включите это меню, и дело сделано. чего оно не делает, так это не говорит о туннеле ничего сверх «подключено», и охватывает оно те сервисы, которыми управляет система: клиент со своим значком в строке меню всё равно приносит свой, и вы читаете два значка вместо одного.
как переключить vpn из командной строки
второй бесплатный способ — scutil, и внимания он заслуживает больше, чем получает. scutil --nc list печатает все подключения текущего набора: на машине, где проверялась эта страница, их вышло пять, включая два клиента, поставленных сетевыми расширениями, и старую запись модема, которую никто не убрал. в каждой строке стоит имя, которое вы передадите следующей команде: scutil --nc start "имя" поднимает подключение, scutil --nc stop "имя" опускает. без sudo, секунд пять. заверните это в шорткат — и у вас бесплатный работающий переключатель.
цена обычная: знать, что такая команда есть, и знать точное имя сервиса — вместе с тем, как его назвал клиент и на каком языке назвал.
так что из этого нужно вам
одна конфигурация, которую вы дёргаете дважды в день, — встроенное меню, и ничего больше. простой случай заканчивается там, где появляется второй клиент, или там, где вопрос перестаёт быть «включено ли» и становится «идёт ли через него хоть что-нибудь»: на второй ни один бесплатный путь не отвечает.
| что у вас | бесплатный путь | с hop |
|---|---|---|
| одна vpn-конфигурация, которую держит сама macOS | включить встроенное меню vpn — два клика, ставить нечего | не нужен, оставайтесь в меню |
| четыре конфигурации от трёх разных клиентов | каждый клиент приносит свой значок в строку меню, или вы заучиваете каждое имя для scutil | один список, у каждого свой переключатель, чей бы он ни был |
| хочется видеть, что туннель поднят, ничего не открывая | встроенное меню отвечает за то, что держит система, каждый клиент — сам за себя | одна точка на одном значке, сразу за всех |
| хочется знать, что трафик правда идёт | два запуска scutil --nc statistics с паузой — и сначала надо ещё заподозрить | точка сама становится оранжевой, пока вы читаете что-то другое |
| клиент сидит в доке ради переключателя, который нужен дважды в неделю | закрыть его и потерять вместе с ним значок в строке меню | нажать на название, когда нужно его окно, закрыть — и hop сам погасит приложение |
как переключить vpn из строки меню
все подключения, о которых знает Mac, лежат одним списком, у каждого свой переключатель, кто бы их ни настроил, а точка на значке в строке меню говорит, стоит ли туннель. ни вендорского окна, ни похода в «Системные настройки», ни вопроса через полчаса, работает ли эта штука до сих пор.
что означают цвета точки, включая туннель, который поднят, а через него ничего не идёт, — подробная инструкция на вашем языке: переключатель vpn в инструкции
в строке стоит то, что сообщает о себе сам клиент: имя, а в скобках — то, что добавляет конфигурация, обычно страна. страну по адресу сервера hop не угадывает никогда: реестр адресов говорит, где зарегистрирован диапазон, а не где стоит машина, и уверенно названная не та страна хуже, чем никакой.
vpn подключён, а через него ничего не идёт
ловить стоит тихую поломку. туннель, который умер, не отключившись, оставляет всё на вид нормальным: клиент говорит «подключено», значок говорит «подключено», и ничего не проходит. узнаёте вы минут через десять, когда страница не откроется.
точка на значке в строке меню горит зелёным, пока туннель поднят, гаснет, пока он поднимается или опускается, и становится оранжевой, когда туннель стоит, а обратно через него ничего не приходит. в панели помечена та строка, о которой речь, так что при нескольких конфигурациях видно, какая именно умерла. «подключён, но не пропускает» — состояние, отличное от «подключён», и показано оно как отдельное. точку можно выключить в настройках; переключатели работают и без неё.
почему «подключено» — не ответ про трафик
это не недоработка клиентов. спросите систему напрямую — получите тот же не-ответ: scutil --nc status на живом туннеле печатает «Connected», а следом сотню строк подробностей — dns-серверы, адреса, исключённые маршруты, сколько раз подключались, — и нигде ни одного поля о том, двигался ли недавно хоть один пакет. мёртвый туннель печатает то же самое слово.
отвечает только scutil --nc statistics, и отвечает он, считая байты и пакеты. счётчики накопительные, поэтому один запуск не говорит ничего: запускаете, ждёте, запускаете снова и сравниваете. на проверке для этой страницы счётчик байтов сдвинулся примерно на 1,3 миллиона за четыре секунды — туннель живой. мёртвый повторил бы то же число.
в этом и весь смысл оранжевой точки: два замера, которые иначе пришлось бы делать руками, делаются непрерывно, а ответ кладётся туда, куда вы и так смотрите.
когда туннель жив, но медленный, а не мёртвый, вопрос другой — и замер тоже: замер скорости интернета
сами протоколы устроены так намеренно: WireGuard не отправляет вообще ничего, пока им не пользуются, а keepalive у него по умолчанию выключен (страница английская): WireGuard quick start, persistent keepalive
приложение провайдера — только когда оно нужно
иногда настоящий клиент правда нужен: выбрать страну, поменять настройку. нажмите на название подключения — откроется его окно. закройте окно — и hop сам погасит приложение, чтобы оно перестало жить в доке ради переключателя, к которому вы подходите дважды в неделю.
подключение при этом остаётся, и вот здесь обычно ждут подвоха: его нет. сторонний клиент ставит свой туннель через каркас сетевых расширений Apple, поэтому держит туннель система, а не окно программы. закрытый hop ваше подключение тоже не уронит.
как сама Apple описывает, где на macOS живут сторонние vpn-клиенты (страница английская): обзор vpn в руководстве по развёртыванию платформ Apple
чего этот переключатель не чинит
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.
what people do with this
об авторе

Anton Shakirovсоздаёт hop
создаёт hop и все страницы этого сайта. девятнадцать инструментов под одной иконкой в menu bar, MIT и открытый код. на issue и письма отвечает сам.