Друзья, на связи hyperion_cs, автор web-чекера tcp 16-20, кой многим здесь известен.
Представляю вашему вниманию dpi-ch — “всесторонний” чекер общего назначения, который является попыткой собрать воедино всё что возможно по этой теме в виде кроссплатформенной tui/cli утилиты. Написано на golang и избавлено от проблем песочницы веб-браузеров. Доступны готовые сборки для Windows / macOS / Linux и скоро планируется для Android; либо сборка из исходников — код, естественно, открыт.
Есть, среди прочего, такой функционал:
-
“Who am I?” — информация о вашем интернет-соединении; aka whoami checker;
-
“Am I under the CIDR whitelist?” — проверка, ограничивает ли цензор соединения tcp/udp по ip-подсетям в формате “белого списка”; aka cidrwhitelist checker;
-
Comprehensive checks (включая проверку работоспособности и ограничений методом tcp 16-20); aka webhost checker:
-
Popular Web Services: проверка популярных веб-сервисов, таких как YouTube, Instagram, Discord, Telegram и другие;
-
Infrastructure Providers: проверка инфраструктурных провайдеров, таких как Cloudflare, Akamai, Hetzner, DigitalOcean и другие. Отличительной чертой чекера является автоматический подбор серверов для проверки.
-
DNS checker: проверяет, осуществляет ли цензор spoofing ответов от dns и/или hijacking dns серверов, блокируется ли DoH и т. д.; aka dns checker;
-
Современный tui (aka cli) с параллельными воркерами и неблокируемым ui;
-
Автоматическое обновление утилиты из релизов с github;
-
Экстремально гибкая настройка конфигурации, особенно для webhost checker.
* На самом деле, утилита была релизнута ещё в марте этого года, но на этом форуме публикуется впервые. В этом треде (или посредством issues) также готов ответить на ваши вопросы и предложения по улучшению работы/функционала;
** По своей задумке похоже на Runnin4ik/dpi-detector, который также является хорошим чекером. Так вышло, что разработка велась одновременно.
Ссылка на документацию утилиты dpi-ch (там же тезисно описаны запланированные фичи):
технически возможно делать проверку на определённом интерфейсе? По аналогии например с curl где можно задать проверку через имя интерфейса
curl --interface warp checkip.amazonaws.com
Да, есть техническая возможность вручную указать имя сетевого интерфейса или его ip для сетевых операций, и в целом это не очень сложно реализуется, хоть и с некоторыми нюасами. Только надо понять в разрезе чего возникает такая потребность: сразу на весь dpi-ch, или в разрезе какого-то конкретного (или всех по отдельности) подчекера, напр., webhost checker?
В первой итерации могу добавить такую опцию сразу на весь dpi-ch, путем указания имени/ip интерфейса в конфиге. Подойдет?
Запрошенная вами функциональность реализована в dpi-ch v0.5.0 (см. описание тамошнего PR или документацию, чтобы понять как использовать). Доступно указание как имени интерфейса, так и его ip адреса.
На MacOS работает отлично.
Почему она показывает красным почти все? То есть это с запретом и стратой которая пробивает блоки 16-20 етц, на чекере в вебе - зеленое все, ну кроме вултра, на аналогичном чекере вот так.
Проверил у себя некоторые узлы, которые вам попались. Без обхода:
С обходом (не
zapret, через VPN):
Таким образом, аккуратно могу предположить, что почему-то ваша стратегия в zapret не повлияла существенно на сетевую работу dpi-ch. Возможно, это связано с тем, как чекер управляет SNI в разделе “Infrastructure Providers”, в связи с этим вопросы:
- Какие у вас результаты во вкладке “Popular Web Services” с zapret и без?
- Попробуйте в config.yaml на тест добавить что-то вроде (создав этот файл, если его нет, рядом с бинарником dpi-ch):
checkers:
webhost:
infra:
- name: DigitalOcean
filter: subnet("206.189.236.249/32")
sni: sistema.lavanderia60minutos.com.br
Повлияет ли это на результаты теста во вкладке “Infrastructure Providers” (опять же, с zapret и без)?
- Можете ли в лс прислать свою стратегию для zapret? Попробую у себя потестировать.
Нравится отсутствие зависимостей от питонов, размер бы ещё раз в 10 поменьше и ipk на Owrt.
В целом, о сборке под OpenWrt можно подумать, если будет спрос. Сам сторонник маленького размера утилит и минимального кол-ва зависимостей, но в данном случае, даже если сильно постараться, будет сложно ужать больше чем до ~10mb, если считать вместе со вспомогательными файлами — всё-таки на борту довольно мощный локальный ip intelligence (автоматически обновляемый geoip, asn/isp данные и т.д.), который, в т.ч., позволяет выдать информацию о вашей сети даже в условиях “белых списков” по cidr, а также непосредственно участвует в механизме подбора узлов для тестирования.