Перейти к основному содержимому

Импорт из другого инструмента

b4 читает командную строку byedpi или zapret и превращает её в сеты. Откройте страницу Сеты и нажмите Импорт.

Это не то же самое, что вкладка Импорт/Экспорт в редакторе сета: та переносит готовый сет b4 между установками b4 в виде JSON.

b4 - не форк

b4 - самостоятельная реализация. Она не разделяет с byedpi и zapret ни кода, ни формата конфигурации, ни движка обхода, и одинаково эти три инструмента не называют почти ничего. Импорт - это перевод, а не перенос: что-то ложится точно, что-то приближённо, а для чего-то соответствия нет вовсе. По каждой опции указано, что именно с ней произошло.

Что можно вставить

Импорт принимает командную строку в тех видах, в которых ею обычно делятся:

  • голый список опций: -Ku -a1 -An -s1+s
  • вместе с именем программы: ciadpi -s1+s или nfqws --dpi-desync=fake
  • строка systemd: ExecStart=/opt/zapret/nfqws --qnum=200 ...
  • переменная из конфигурационного файла: NFQWS_OPT="--dpi-desync=fake ..."
  • несколько строк, с комментариями # и переносами через \

Поддерживаемые инструменты:

ИнструментВерсии
byedpi (ciadpi)0.13, а также 0.15 - 0.17
zapret (nfqws)текущая

Инструмент и версия определяются по использованным опциям. Между 0.13 и 0.15 byedpi поменял значение нескольких букв, поэтому, когда в строке нет ничего, что указывает на версию, импорт сообщает, что версия определена предположительно, и её можно выбрать вручную.

Порядок действий

  1. Вставьте командную строку и нажмите Разобрать. На этом шаге ничего не сохраняется.
  2. Прочитайте отчёт. Каждый профиль исходной конфигурации становится отдельным сетом, и для него перечислены все входившие в него опции.
  3. Заполните домены для каждого сета (см. ниже).
  4. Нажмите Создать сеты.

Профили становятся сетами

И byedpi, и zapret делят конфигурацию на профили. Каждый становится отдельным сетом b4 в том же порядке.

Профили эти два инструмента используют по-разному, и импорт следует каждому:

  • byedpi начинает профиль опцией -A/--auto, что означает «попробовать это, если предыдущая попытка не удалась». Это цепочка повторов, поэтому сеты связываются через эскалацию. b4 эскалирует по повторяющимся RST; у триггеров byedpi по HTTP-редиректу и ошибке TLS соответствия нет, и они отмечаются как приближённые.
  • zapret начинает профиль опцией --new, что означает «альтернатива, выбираемая по собственным фильтрам». Такие сеты независимы, эскалации между ними нет.

Профиль byedpi, ограниченный только UDP и без собственных фильтров, объединяется с сетом, обрабатывающим остальной трафик: один сет b4 покрывает оба протокола.

Домены

Сет b4 работает по заданным ему целям. В командной строке byedpi списка хостов обычно нет вовсе, а в zapret он, как правило, указывает на файл той машины, где инструмент запущен, поэтому импорт запрашивает домены для каждого сета, а сет без целей создаёт выключенным.

Отчёт опирается на два правила:

  • У сета, существующего только как подстраховка другого, поля доменов нет. Он включается по связи эскалации, а не по совпадению. С теми же доменами он стал бы конкурентом сета, который должен подстраховывать.
  • По одному домену может работать только один сет. b4 выбирает один сет на назначение и не переходит к следующему, когда фильтр портов не совпал. Там, где несколько профилей делят список хостов и различаются только фильтруемым портом, более поздние сеты создаются выключенными и называются в отчёте. Задайте каждому те домены, которые он должен обрабатывать, или удалите ненужные.

Файлы со списками хостов

--hostlist=/opt/zapret/ipset/zapret-hosts-user.txt и -H /etc/byedpi/hosts.txt указывают на файлы машины, где работает тот инструмент. Импорт прочитать их не может. У сета, чей профиль ссылался на файл, путь показан рядом с полем доменов. Откройте этот файл на той машине и вставьте его содержимое сюда.

То же касается фейкового пэйлоада, загружаемого из файла (--dpi-desync-fake-tls=/opt/.../tls_clienthello.bin). Вместо него используется встроенный пэйлоад. Чтобы задействовать исходный, загрузите файл в разделе Настройки -> Пэйлоады.

Отчёт

Для каждой опции есть строка о том, во что она превратилась.

РезультатЗначение
ПеренесеноВ b4 есть то же самое. Заданные поля b4 перечислены под пояснением
ПриближённоИспользовано ближайшее поведение b4. В строке сказано, чем оно отличается
Нет аналогаb4 такое выразить не может
НеприменимоОпция настраивает сам процесс другого инструмента (порт прослушивания, размеры буферов, режим демона) и для b4 ничего не значит
Без эффектаОпция разобрана, но и в исходном инструменте ничего не делает. Например, --md5sig в профиле byedpi, который не отправляет фейковых пакетов
Не распознаноНеизвестная опция для этого инструмента и версии
ОшибкаЗначение прочитать не удалось

Процент над отчётом полностью учитывает перенесённые опции и частично - приближённые. Опции со статусом Неприменимо в него не входят: отброшенный порт прослушивания прокси не является потерей точности.

Что не переносится

Наиболее заметные пробелы, в обе стороны:

  • Автоматический TTL (--dpi-desync-autottl, замер числа хопов в byedpi). b4 использует фиксированный TTL для фейковых пакетов. Задайте его вручную или найдите через Дискавери.
  • Изменение открытого HTTP (--hostcase, --domcase, --mod-http в byedpi). b4 открытый HTTP не модифицирует.
  • Списки исключений (--hostlist-exclude, --ipset-exclude). Просто не добавляйте эти записи в цели сета.
  • Диапазоны пакетов (--dpi-desync-start, --dpi-desync-cutoff, --round в byedpi). b4 использует лимит пакетов на соединение на вкладке TCP.
  • Отрицание в фильтрах портов (--filter-tcp=~80). Фильтр портов b4 перечисляет порты, на которых работать.
  • Работа прокси. byedpi - это SOCKS5-прокси, поэтому его адрес прослушивания, размеры буферов, лимиты соединений и опции демона описывают процесс, которого у b4 нет.

После импорта

Результат - отправная точка, а не проверенная конфигурация. Провайдер, маршрут и способ блокировки на машине, откуда взята конфигурация, и на этой отличаются.

Запустите Дискавери по импортированным доменам, чтобы убедиться, что стратегия здесь работает, и найти другую, если нет.