Skip to content

Method для macOS — 1.0.0

Choose a tag to compare

@lstcrsdd lstcrsdd released this 20 Aug 22:54
· 33 commits to main since this release

Method — VPN-клиент, который сам выбирает, каким способом пройти, и объясняет
свой выбор. Серверы в приложение не вшиты: вставьте свои ссылки
(hysteria2 / vless+reality / trojan / shadowsocks) или адрес подписки.

Ядро sing-box уже внутри приложения — отдельно ничего скачивать не нужно.

Требуется: macOS 14 и новее, Apple Silicon (архитектуры бандла: arm64).
Права администратора — один раз, при активации системной службы.


Установка

⚠️ Не открывайте приложение двойным кликом до шага 2.
Проверено на macOS 26: с меткой карантина Gatekeeper убивает процесс, а
единственная кнопка в окне — «Переместить в Корзину». Кнопки «Открыть всё
равно» не предлагается: приложение подписано локально (ad-hoc), платного
аккаунта Apple у проекта нет, значит нет и нотаризации. Пути через
интерфейс не существует — установка идёт командой в Терминале.
Если уже кликнули и приложение исчезло — верните Method.app из Корзины
в «Программы» и продолжайте с шага 2.

Шаг 1. Скачайте архив

Файл Method-1.0.0-macos-arm64.zip со страницы релиза. По умолчанию он попадёт
в «Загрузки».

Шаг 2. Установите одной командой

Откройте Терминал (Spotlight → «Терминал») и вставьте целиком:

cd ~/Downloads && ditto -x -k Method-1.0.0-macos-arm64.zip . && xattr -dr com.apple.quarantine Method.app && mv -f Method.app /Applications/

Команда делает три вещи: распаковывает архив, снимает метку карантина и
переносит приложение в «Программы».

Почему без снятия карантина нельзя: пока метка на месте, macOS запускает
приложение из временной случайной папки (App Translocation), и системная
служба оттуда не активируется в принципе. Приложение обязано лежать именно
в /Applications — служба выполняет команды только от приложения, рядом
с которым установлена.

Шаг 3. Активируйте системную службу

Откройте Method (теперь можно двойным кликом), затем ⌘, → вкладка
Демон → Активировать. Потребуется пароль администратора — один раз.

Служба нужна, потому что клиент поднимает системный туннель: заворачивает
весь трафик, а не только браузер. Создать сетевой интерфейс и прописать
маршруты без прав root нельзя.

Если статус остался «ждёт подтверждения» — откройте
Настройки системы → Основные → «Элементы входа и расширения»
и включите переключатель у Method. macOS иногда требует подтверждения
вручную, особенно после обновления приложения.

Шаг 4. Добавьте свои серверы

Вкладка Серверы → +:

  • Ссылка — вставьте hysteria2://…, vless://…, trojan://…
    или ss://…. Можно несколько строк сразу.
  • Подписка — вставьте её адрес; клиент сам заберёт список и будет
    обновлять его.

Шаг 5. Подключитесь

Вкладка Обзор → большая кнопка. При первом подключении клиент около двух
минут изучает пути — в это время маршрут держит ядро, интернет работает.
Дальше выбор переходит к движку, и следующие подключения начинаются сразу:
измерения сохраняются между запусками.


Что клиент делает сам

Выбирает способ обхода, а не только сервер. Протоколы сгруппированы по
пяти независимым осям: QUIC поверх UDP (Hysteria2), HTTP/2 в поддельном TLS
(Reality gRPC), голый TCP в поддельном TLS (Reality Vision), настоящий TLS
(Trojan), шифрованный поток без рукопожатия (Shadowsocks-2022). Протоколы на
одной оси убивает одна и та же причина, поэтому переключение между ними при
блокировке не даёт ничего — клиент меняет ОСЬ.

Меняет маршрут не разрывая туннель. Смена пути — это один запрос к
локальному API ядра, а не переподключение: соединения не рвутся.

Объясняет свои решения. Когда путь сменился сам, клиент пишет почему —
например «ушли с Финляндии: три пробы подряд без ответа».

Никогда не подставляет прямой выход. Если живых маршрутов не осталось,
полоса блокируется. Открытым трафик не пойдёт ни при каких обстоятельствах.


Настройки, о которых стоит знать

«Блокировать трафик мимо туннеля» (kill switch, выключен по умолчанию).
Если ядро упадёт, интернет отключится, а не пойдёт открытым. Проверено
замером: без него в момент падения ядра наружу уходит реальный адрес.
Ограничение: правила привязаны к сетевому интерфейсу, активному в момент
подключения. Пересядете с Wi-Fi на раздачу с телефона — переподключитесь.

Сценарии. Правило называет ПУТЬ, а не сервер: «эти сайты — мимо
туннеля», «эти — через него». Правила проверяются сверху вниз, побеждает
первое совпавшее; правило, перекрытое более ранним, клиент показывает
перечёркнутым и не даёт создать новое такое же. Правила попадают в ядро при
подключении — после правки нажмите «Применить».


Известные ограничения

  • Нет нотаризации. Установка только через Терминал (шаг 2), обхода мышью
    не существует. После каждого обновления macOS может снова спросить
    подтверждение службы в «Элементах входа».
  • Доступность оси зависит от канала. Пять осей заявлены, но конкретная
    сеть может резать любую из них. Замерено: на одном московском канале
    Shadowsocks не проходит вовсе, при полностью исправном сервере. Это не
    поломка — ради этого оси и считаются: клиент пометит ось мёртвой и уйдёт
    на другую.
  • Только Apple Silicon. Сборки под Intel нет.

Проверка загруженного файла

e6c1de8830bfb6e55af62115972d722e27af402338bcc44692cc3ce23a2c2d1c  Method-1.0.0-macos-arm64.zip

Лицензии

Внутри приложения едет ядро sing-box 1.13.13 (ревизия 78b2e12fbdd85e6ec956647d6f79cf0bba85c6ba)
— свободное ПО под GPL-3.0. Исходный код ядра: https://github.com/SagerNet/sing-box