файрвол для программ на Mac
обновлено · автор Anton Shakirov
hop показывает каждую программу, которая выходит в сеть, и адреса, к которым она обращалась, а затем позволяет отключить любую из них — целиком или один её адрес. работает на сетевом фильтре, который macOS предоставляет именно для такой задачи, — том же виде, что использует LuLu и Little Snitch, — и ничего не расшифровывает.

| what it is | app firewall 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 |
кому нужен файрвол для отдельных программ
обычный повод — заметить, что программа общается с интернетом больше, чем должна бы: утилита, которая при каждом запуске стучится на сервер лицензий, фоновый помощник, синхронизирующий то, о чём его не просили, игра, обращающаяся к адресам, не имеющим отношения к самой игре. сам macOS не скажет, какие программы подключены прямо сейчас и куда: вкладка «Сеть» в «Мониторинге системы» показывает объём переданных байт, а не адреса.
второй повод — заранее поставить правило: заблокировать один сервер для программы, которой вы не вполне доверяете, или вовсе отключить от сети установленную, но не используемую программу, — не трогая роутер, DNS или VPN, который затронул бы вообще всё сразу.
что показывает и что делает один клик
каждая подключившаяся программа появляется в списке вместе с адресами, к которым обращалась. клик по названию программы отключает её от сети целиком; откройте программу — и можно заблокировать отдельно один адрес, скажем, проверку лицензии, пока остальной трафик идёт как обычно. правило для адреса всегда главнее правила для программы, так что одно исключение не требует включать обратно весь переключатель.
правилу не нужно, чтобы программа уже подключалась. в списке — все установленные программы, выходили они в сеть или нет, так что программу можно заблокировать ещё до того, как она вообще успеет куда-то обратиться.
- заблокировать программу целиком или один её адрес — одним кликом
- поставить правило ещё до первого подключения программы — выбрав её из списка или из папки программ
- загрузить список адресов из файла (по одному в строке или файл hosts) и заблокировать их сразу для всех программ; строка может называть и программу: `com.example.app license.example.com`
- сохранить текущие правила обратно в файл
- отсортировать список по времени появления программы, по имени или сначала недавние
подробный разбор — что означает каждая подпись и раздел окна — в инструкции, на вашем языке: блокировка трафика в инструкции
как устроен сам фильтр
hop делает это через сетевой фильтр, который macOS предоставляет именно для такой задачи, — системное расширение той же категории, на которой построены LuLu и Little Snitch. при первом запуске модуля macOS попросит разрешить его в системных настройках; это разовый системный диалог, который hop не может ни пропустить, ни одобрить заранее.
фильтр решает по первому пакету соединения и никогда не смотрит внутрь: он блокирует весь сервер целиком, а не одну страницу на нём, — глубже фильтр, работающий на уровне соединения, заглянуть не может в принципе. если фильтр когда-нибудь остановится — из-за обновления macOS, сбоя, чего угодно, — интернет продолжит работать: ничего не блокируется, пока фильтр не вернётся. выключение модуля в настройках останавливает именно ваши блокировки, а не сетевой доступ Mac в целом.
описание Apple того самого фреймворка сетевых расширений, на котором строится этот класс приложений (страница английская): Network Extension, Apple Developer documentation
тихо по умолчанию, и необязательный запрос
модуль включён по умолчанию и сам по себе ничего не блокирует: без заданных правил каждое соединение проходит ровно так же, как без hop. никакого готового списка трекеров или рекламных серверов для блокировки заранее здесь нет, и молча отключать программы модуль не станет — каждая блокировка в списке поставлена вами.
спрашивать о новых соединениях — отдельная настройка, по умолчанию выключенная. если включить, карточка в правом верхнем углу спросит о соединении, которое не покрывает ни одно правило, — для этого адреса или для всей программы, — вместо того чтобы hop решал сам.
чем это не является и где граница
hop — не VPN, он не маршрутизирует и не просматривает ваш трафик по пути куда бы то ни было: соединение либо пропускается без изменений, либо отклоняется на первом пакете. фильтровать по URL или странице внутри зашифрованного соединения он не может — HTTPS прячет всё, что дальше адреса сервера, так что «заблокировать вот эту одну страницу» — правило, которое такой фильтр в принципе не умеет выразить, ни у hop, ни у любого файрвола для программ, устроенного так же.
это и не DNS-блокировщик, и не фильтр содержимого для того, что показывает вкладка браузера: те работают, разрешая или подменяя имена, — другой уровень с другими компромиссами. и он ничего не собирает о том, что видит: список адресов и правила, которые вы задали, остаются на этом Mac.
| что нужно | делает ли это файрвол hop | что взять вместо |
|---|---|---|
| увидеть, какие программы сегодня выходили в сеть и куда | да — это и есть первый экран | — |
| полностью отключить программу от сети | да — один клик по её названию | — |
| оставить программе доступ к её сервису, но заблокировать один сторонний адрес, к которому она обращается | да — заблокировать именно этот адрес, остальное оставить как есть | — |
| заблокировать страницу или раздел внутри в целом доверенного сайта | нет — фильтр видит сервер, а не URL | расширение браузера, которое умеет читать саму страницу |
| скрыть свой трафик от провайдера или сети | нет — у hop нет серверов, и он ничего не маршрутизирует | настоящий VPN |
| блокировать рекламу и трекеры повсюду, включая браузер | не по умолчанию — hop не поставляется со списком блокировки | блокировщик на уровне DNS или расширение браузера |
frequently asked questions
- видит ли hop мой трафик или сохраняет его?
- нет. фильтр решает по первому пакету соединения и никогда не смотрит внутрь; hop ничего не расшифровывает, а список адресов остаётся на этом Mac.
- это то же самое, что VPN?
- нет. hop ничего не маршрутизирует, и у него нет серверов. он либо пропускает соединение без изменений, либо блокирует его на первом пакете — что происходит внутри разрешённого соединения, он не видит и не трогает.
- можно заблокировать один адрес, не блокируя всю программу?
- да. откройте программу, чтобы увидеть её адреса, и заблокируйте любой из них отдельно — правило для адреса всегда главнее переключателя самой программы.
- что будет, если сетевой фильтр перестанет работать?
- интернет продолжит работать. ничего не блокируется, пока фильтр не вернётся, а выключение модуля останавливает только заданные вами блокировки — не сетевой доступ Mac.
- нужно ли что-то разрешать, чтобы это заработало?
- один раз. при первом запуске модуля macOS попросит разрешить сетевой фильтр hop в системных настройках — тот же разовый запрос, что нужен любому файрволу для программ такого рода.
- замедляет ли это интернет?
- фильтру нужно посмотреть только на первый пакет каждого нового соединения, а не на сам трафик, так что уже идущие передачи это не затрагивает.
- чем это отличается от LuLu или Little Snitch?
- та же идея и тот же вид фильтра macOS под капотом. версия hop живёт в строке меню рядом с остальными модулями, а не отдельным приложением, и сохраняет те же границы: блокирует целые серверы, а не страницы, и ничего не расшифровывает.
other tools in hop
- time trackerwhere the hours went, kept on this Mac and nowhere else.
- system monitorload, temperatures, memory and battery — quiet until something is wrong.
- torrentsdrop a file or paste a magnet link — it downloads in the panel.
об авторе

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