v0.1.0 — first release
First public release: a complete macOS port of Flowseal/zapret-discord-youtube, rewritten from scratch in Go for Apple Silicon.
Первый публичный релиз: полный порт Flowseal/zapret-discord-youtube на macOS, переписанный с нуля на Go под Apple Silicon.
What is in it / Что внутри
- Two datapaths.
divert— pf steers the strategy's port window into a utun the daemon owns, and packets are re-emitted as raw Ethernet frames via/dev/bpfN, bypassing pf. That gives full winws-class control:seqovl, fakes, per-packet TTL,ip-id, fooling modes, UDP.proxy— the socket-level fallback (pf rdr+DIOCNATLOOK), TCP only. - All 21 upstream strategies, converted by
cmd/batconvwith their exact parameters preserved. /etc/pf.confis never modified — rules live in the wildcard sub-anchorcom.apple/zapret-mac.- QUIC Initial decryption to extract the SNI, hostlist and 32k-CIDR ipset matching,
--hostlist-auto. zaprctl autopickmeasures every strategy and keeps the one that works on your ISP.zaprctl vpn stopcleanly unloads a VPN holding the default route, and puts it back.
Два датапаса.
divert— pf заворачивает окно портов стратегии в utun, которым владеет демон, а обратно пакеты уходят сырыми Ethernet-кадрами через/dev/bpfN, минуя pf: это даёт полный контроль уровня winws (seqovl, фейки, TTL на пакет,ip-id, fooling, UDP).proxy— резервный сокетный режим (pf rdr+DIOCNATLOOK), только TCP. Все 21 стратегия из upstream сконвертированы с точными параметрами./etc/pf.confне правится. Есть расшифровка QUIC Initial ради SNI, hostlist и ipset на 32k CIDR, автоподбор стратегии и корректная остановка VPN.
Install / Установка
tar -xzf zapret-for-mac_v0.1.0_darwin_arm64.tar.gz
sudo ./zapret-probe # check what your machine supports; reverts itself
sudo ./zapretd install-daemon --plist /Library/LaunchDaemons/io.zapretmac.zapretd.plist \
--data "/Library/Application Support/zapret-mac"Building from source is the supported path and takes one command — see the Quick start.
Сборка из исходников — основной путь и делается одной командой, см. Быстрый старт.
Notes / Примечания
Binaries are ad-hoc signed by the Go linker (all arm64 requires) and are not notarized: they carry no quarantine attribute when downloaded with curl, but Safari will quarantine them — remove it with xattr -d com.apple.quarantine <file> if needed.
Бинарники подписаны ad-hoc линкером Go (этого требует arm64) и не нотаризованы: при скачивании через
curlкарантина нет, но Safari его поставит — снимается черезxattr -d com.apple.quarantine <файл>.
Requires macOS on Apple Silicon and root. Does not require disabling SIP, kexts, NetworkExtension entitlements, a paid Apple Developer account or a reboot.
Нужны macOS на Apple Silicon и root. Не нужны отключение SIP, kext, entitlements, платный аккаунт Apple и перезагрузка.