Импорт из другого инструмента
b4 читает командную строку byedpi или zapret и превращает её в сеты. Откройте страницу Сеты и нажмите Импорт.
Это не то же самое, что вкладка Импорт/Экспорт в редакторе сета: та переносит готовый сет b4 между установками b4 в виде JSON.
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 поменял значение нескольких букв, поэтому, когда в строке нет ничего, что указывает на версию, импорт сообщает, что версия определена предположительно, и её можно выбрать вручную.
Порядок действий
- Вставьте командную строку и нажмите Разобрать. На этом шаге ничего не сохраняется.
- Прочитайте отчёт. Каждый профиль исходной конфигурации становится отдельным сетом, и для него перечислены все входившие в него опции.
- Заполните домены для каждого сета (см. ниже).
- Нажмите Создать сеты.
Профили становятся сетами
И 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 нет.
После импорта
Результат - отправная точка, а не проверенная конфигурация. Провайдер, маршрут и способ блокировки на машине, откуда взята конфигурация, и на этой отличаются.
Запустите Дискавери по импортированным доменам, чтобы убедиться, что стратегия здесь работает, и найти другую, если нет.