Skip to content

Repository files navigation

mac-gate

Mac сам, без роутера, направляет домены и подсети из своих списков в туннели AmneziaWG 3.1, а остальное отпускает напрямую. Внутри — свой DNS-резолвер, сторож туннелей и kill switch в pf; работает службой launchd.

  • Правила вместо одного туннеля. Список доменов и подсетей, условие (страна, в которой сейчас Mac) и туннели по приоритету. Правил может быть несколько, и порядок между ними — это приоритет.
  • Запасные туннели. Правило переходит на запасной, как только основной перестал носить трафик, и возвращается, когда тот отработал две минуты.
  • Плохой канал — не повод рвать туннель. Когда пробы через туннель не проходят, а сервер при этом отвечает, испортился путь до него: перезапуск такое не чинит, зато рвёт все соединения разом. Туннель остаётся поднятым, а перезапуск делается один и только когда терпение вышло.
  • Kill switch держится в ядре. Блок мимо туннелей стоит в pf и переживает падение и сторожа, и самого туннеля: трафик к охраняемым адресам не уходит напрямую, даже когда программа мертва.
  • Маршрут ставится раньше ответа. Адрес, выданный резолвером, уже имеет маршрут в туннель к тому моменту, когда клиент его получил.

Чем это не является

mac-gate — средство маршрутизации: он решает, каким путём идёт трафик, и не меняет, не скрывает и не подделывает его содержимое. Что положить в списки и к каким серверам подключаться, решает владелец установки; он же отвечает за соблюдение законов и договоров, действующих для него, — права страны пребывания, условий провайдера и правил сервисов, к которым обращается. Для обхода ограничений там, где это запрещено, продукт не предназначен.

Быстрый старт

Нужны Rust-тулчейн, Command Line Tools и Go — последний для amneziawg-go.

cargo build --release
sudo ./target/release/mac-gate install --config ~/.config/mac-gate/mac-gate.toml \
    --awg-go /path/to/amneziawg-go --awg /path/to/awg

Файл настроек — TOML: туннели, правила и списки с их источниками. Примеры под разные сценарии, с пояснением к каждому значению, своими списками и конфигами туннелей, где вместо ключей заглушки, — в examples/; полный набор возможностей показывает examples/full-all-features.toml. Это только примеры: ставить их как есть бессмысленно — свои настройки собираются самостоятельно, под свои серверы, списки и сценарий. Устройство, все команды и опции, измерения, отвергнутые варианты и риски — в docs/mac-gate.md.

Требуется рядом

amneziawg-go и awg — отдельные программы, mac-gate запускает их как дочерние процессы и в свой состав не включает. Собираются из репозиториев amnezia-vpn. Что именно используется и на каких условиях — THIRD-PARTY.md.

Лицензия

На выбор: MIT или Apache 2.0.

About

Routes listed domains and subnets into AmneziaWG tunnels on macOS, with a resolver, a tunnel watchdog and a pf kill switch

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages