Меню
RU

Big Sur: хороший, плохой, злой

Не так давно мы выпустили AdGuard 2.5 для Mac, в котором, помимо прочего, был сделан большой акцент на совместимости с приближающейся новой версией macOS Big Sur. Патч 2.5.1, который последовал совсем недавно, также был под завязку набит изменениями, направленными на улучшение совместимости.

Должен сказать, что подружить AdGuard и Big Sur — далеко не самая простая задача. Apple в этом году взялись за macOS особенно сильно и перевернули всё вверх дном.

Во-первых, дело в устаревании Kernel Extensions. Если вы частый гость в нашем блоге, вы наверное помните, что мы упоминали про это ещё в марте. Найти информацию на эту тему в интернете достаточно легко, но вот сильно сокращённая версия: Kernel Extensions — это API, на который AdGuard полагался в своих предыдущих версиях. С появлением Big Sur macOS ушёл от этого API к новому, который очень сильно отличается от прежнего. Все внутренние процессы AdGuard пришлось перестраивать, подгоняя под новый API.

И это только один из факторов. Также вместе с Big Sur Apple осуществляют переход с процессоров Intel на процессоры ARM. Как вы уже догадались, это тоже обеспечило нас дополнительной работой. Давайте внимательнее взглянем на обе эти причины.

Поддержка ARM

Разберёмся сначала с этой причиной, поскольку тут всё более-менее очевидно. Apple позволили разработчикам получить так называемый Developer Transition kit, который включает в себя, помимо прочего, прототип компьютера Mac Mini на основе ARM.

Мы всё оттестировали на нём и рады сообщить, что AdGuard бесконфликтно работает с процессорами ARM.

Переход на Network Extensions

Network Extensions — это API, который приходит на смену старому Kernel Extensions API. Почему вообще Apple решили заменить API? Их основной мотив — запретить разработчикам работать в контексте ядра ОС, ограничив их пределами User mode. Корректная реализация Kernel Extensions — непростая задача. Достаточно допустить одну ошибку, и это уже может привести к вылету системы. Перевод на User mode всех функций, которые ранее можно было реализовать только на уровне ядра, должно в теории сделать ОС более стабильной. К сожалению, у этого есть своя цена.

Что касается AdGuard, как уже было упомянуто выше, API, который мы будем отныне использовать для осуществления системной фильтрации, называется Network Extensions. И — вы угадали верно — переход на него оказался весьма болезненным. Big Sur — первая ОС, где Network Extensions применяется повсеместно. Мы отправили огромное количество отчётов о багах, провели несчитанные часы в дискуссиях с разработчиками Apple. К счастью, всё это было не напрасно — все критические проблемы работы с Network Extensions были решены.

Имейте в виду, что не все эти ключевые изменения были внесены в macOS Catalina, так что там вам придётся полагаться на старый добрый Kernel Extensions.

Однако, несмотря на все наши усилия, в работе с Network Extensions по-прежнему остались определённые ограничения. Вот список известных проблем и возможных путей их решения:

Совместимость с локальными прокси

Изменились некоторые нюансы одновременной работы AdGuard с прокси. Есть хорошие новости: любой удалённый (не локальный) прокси будет без проблем работать в Big Sur вместе с AdGuard и не потребует от вас никаких дополнительных действий. Но в случае с локальным прокси (localhost) вам необходимо убрать этот прокси из системных настроек и добавить в настройки прокси AdGuard.

Чтобы настроить вышестоящий прокси в AdGuard для Mac на Big Sur, вам необходимо перейти в Меню AdGuard -> Дополнительно -> Расширенные настройки.... Кликните по области Значение настройки upstream.proxy, чтобы настроить прокси.

Введите строку вида scheme://user:password@host:port, где

  • scheme имеет значение http, https, socks4 или socks5, в зависимости от типа прокси.

Если вы используете тип прокси socks5, установите значение настройки upstream.proxy.socks5udp как true, чтобы указать AdGuard направлять UDP-трафик через прокси-сервер.

  • user и password — имя пользователя и пароль от вашего прокси соответственно (если требуются). Игнорируйте эти параметры, если один из них (или оба) не применимы к данному прокси.
  • host — IP-адрес вашего прокси-сервера.
  • port — желаемый номер порта, который будет использоваться прокси-сервером.

Пример: строка socks5://localhost:6322 настроит локальный прокси типа SOCKS5, который слушает порт 6322 и не требует имени пользователя и пароля.

Нажмите Применить, чтобы заставить AdGuard пересылать весь трафик через настроенный прокси-сервер.

Инструкции для некоторых популярных локальных прокси

В зависимости от того, какой локальный прокси вы используете, могут быть некоторые отличия в их настройке. Более подробные инструкции для двух из наиболее популярных прокси (Surge, Shadowsocks) доступны по ссылке в нашей базе знаний.

VPN-приложения с легаси API

Несмотря на то, что AdGuard отображается в системных настройках как VPN, конфликтов с другими приложениями на основе VPN возникнуть не должно. Однако, если вы используете VPN-приложение, скачанное не из AppStore, существует шанс, что оно использует сторое VPN API, и в таком случае необходимо исключить его из фильтрации:

  1. Откройте меню AdGuard.
  2. Выберите Настройки....
  3. Переключитесь на вкладку Сеть.
  4. Кликните по кнопке Приложения....
  5. Найдите приложение, которое вы хотите добавить в исключения, и уберите галочку напротив него.

Альтернативы ипользованию Network Extension

Невозможно предвидеть все потенциальные проблемы, которые могут возникнуть в Big Sur, ведь существует бесчисленное количество комбинаций железа, софта и настроек. Так что, если вы всё же столкнётесь с какими-либо сложностями, пожалуйста, напишите нам в поддержку — но также вы можете попробовать одно из альтернативных решений.

Использование в режиме "Автоматический прокси"

Вы можете попробовать переключить AdGuard в режим Автоматический прокси. После этого система будет принимать AdGuard за прокси, и тем самым получится избежать некоторых потенциальных проблем совместимости с Network Extensions.

  1. Откройте меню AdGuard.
  2. Выберите Настройки....
  3. Переключитесь на вкладку Сеть.
  4. Кликните по кнопке Выбрать режим....
  5. Выберите Автоматический прокси.

AdGuard автоматически добавит .pac-файл в сетевые настройки вашего Mac, и теперь система будет распознавать AdGuard как прокси и попытается направлять через него весь трафик.

Примите во внимание, что некоторые приложения могут игнорировать эту настройку, и в таком случае их трафик не будет фильтроваться.

Включение Kernel Extensions

В некотором роде это — крайняя мера. Чтобы включить Kernel Extensions, сначала вам потребуется отключить Защиту системной целостности (System Integrity Protection, SIP). Есть шанс, что это поможет, но также есть и риск, что это создаст больше проблем, чем решит. Если вы настроены решительно, следуйте этой инструкции из Базы знаний.

Ещё раз повторюсь, что этот метод стоит использовать только в том случае, когда всё остальное оказалось неэффективным, и даже тогда делать это с осторожностью.

В заключение

Как вы могли понять из этой статьи, Big Sur — это одновременно и хорошие, и плохие новости. Время покажет, в какую сторону в итоге качнётся маятник: возникнет ли в будущем больше проблем или же, наоборот, в результате произведённых изменений появится больше новых возможностей. Пока что всё, что вы можете сделать — вооружиться знаниями из этой статьи и быть готовыми встретить любые потенциальные сложности. И будем вместе надеяться, что Apple напрягутся и исправят всё в кратчайшие сроки!

Загружая комментарии, вы соглашаетесь с условиями использования и политикой конфиденциальности.
Акция AdGuard на Хэллоуин
В этом году у нас нет никаких страшилок, только много сюрпризов для вас: скидка 40% на все лицензионные ключи блокировщика AdGuard, включая продление и обновление уже имеющихся у вас ключей, и скидка 60% на годовую подписку AdGuard VPN!
Релиз AdGuard VPN для Android
Встречайте первую стабильную версию AdGuard VPN для Android!
Загрузка AdGuard началась Стрелка указывает на файл: нажмите на него, и установка начнётся Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне перетащите значок AdGuard в папку «Приложения». Спасибо за выбор AdGuard! Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне нажмите «Установить». Спасибо за выбор AdGuard!
AdGuard есть и в мобильном варианте