| >> |
№196617
17934646806730.jpg
(29Кб, 735x417)
Показана уменьшенная копия, оригинал по клику.
Я арендовал три VPS у разных хостинг-провайдеров в разных странах и развернул на них несколько протоколов: Vless, Hy2, WG, SS и обычный Socks5. На домашнем роутере у меня установлен Xray-Core с балансировщиком нагрузки, который управляет всеми этими исходящими соединениями. Всё работает стабильно. Я даже не знаю, какой именно сервер или протокол используется в данный момент — система выбирает их автоматически.
Обход ТСПУ (российских систем государственной цензуры) на домашнем сервере под управлением NixOS. Я собрал всё необходимое в одном месте, чтобы не пришлось искать информацию по всему интернету.
Ситуация: - YouTube загружается с перебоями; Instagram и Telegram не открываются вовсе. - Диагностические скрипты либо выдают неверные данные, либо рапортуют, что «всё в порядке», хотя на деле это не так. - Ручной подбор стратегий для Zapret превратился в настоящий кошмар.
Что было сделано:
1. Собственный набор инструментов для диагностики (выявление DPI) Комплект из 7 bash-скриптов, которые за 2 минуты предоставляют следующую информацию: • Статус разгрузки сетевой карты (NIC offload: TSO/GSO/GRO) — критически важно для работы nfqws2. • Статистика NFQUEUE с пояснениями (PID=0 — нормальное явление при использовании setuid). • Утечки DNS, используемый DNS-резолвер, принадлежность к узлам Cloudflare. • Поуровневая проверка: DNS → TCP → TLS → HTTP → тест на отбрасывание пакетов размером 16 КБ. • Статус QUIC/HTTP3 с интерпретацией ошибки E:55. • Интеграция с CensorCheck для финальной проверки.
Результат: лог выглядит как полноценный технический отчет, в котором отсутствуют ложные срабатывания. 2. Zapret2 (nfqws2) в NixOS Модуль, включающий: • Автоматическое обновление списков блокировок Роскомнадзора (РКН) (через antifilter.download) • Две стратегии: `wssize:wsize=1:scale=6` + `multidisorder:pos=midsld` • Правило nftables без условия `packets <= 5` (в противном случае стратегия перестает работать) • Обход блокировок на основе UID для запросов от служб • Отключение QUIC (отклонение пакетов по протоколу UDP на порту 443) для принудительного перехода на TCP
Результат: YouTube, Facebook и Rutracker работают стабильно. 3. dnscrypt-proxy2 • Поддержка нескольких протоколов: DNSCrypt + DoH (Quad9, Cloudflare) • `block_ipv6 = true` (Роскомнадзор навязывает использование IPv6, но фильтрует его некачественно) • Жесткая привязка `resolv.conf` к `127.0.0.1`, чтобы предотвратить перезапись файла со стороны NetworkManager или systemd-resolved
Результат: отсутствие утечек DNS-запросов; быстрое и надежное разрешение имен.
4. blockcheckw (rcd27) Обертка для blockcheck2, написанная на Rust. Поддерживает параллельное сканирование (1024 потока) и вывод данных в формате JSON. Результат: подбор стратегии занимает минуты вместо часов.
5. censorcheck (vernette) Простой bash-скрипт для проверки доступности сайтов по различным протоколам. Результат: позволяет быстро определить, осуществляется ли блокировка по IP-адресу или на основе SNI.
6. Списки и источники • 1andrevich/Re-filter-lists — актуальные домены и IP-адреса из реестра Роскомнадзора; Экспорт данных для Xray/sing-box (.srs): • Noktomezo/RussiaFancyLists — тщательно отобранные списки с автоматическим обновлением каждые 3 часа. • V3nilla/IPSets-For-Bypass — CIDR-диапазоны заблокированных хостинг-провайдеров (Cloudflare, OVH и др.). • hxehex/russia-mobile-whitelist — для обхода «белых списков» мобильных операторов. • medvedeff-true/ru-gaming-blocklist — игровые сервисы (актуально для геймеров).
Результат: не нужно вручную разбирать данные Роскомнадзора — всё уже структурировано. Итог: • YouTube в 4K без буферизации. • Instagram/Telegram — через каскад (РФ → СНГ → Европа), так как здесь применяется прямая блокировка по IP. • Discord — работает, но для голосовых каналов требуется туннель UDP-over-TCP (Hysteria2/TUIC). • Диагностика занимает 2 минуты, а не полчаса ручного поиска.
Важные нюансы: 1. Универсального решения («одно для всего») не существует. Необходим раздельный доступ (split-tunneling): • Блокировки по SNI → Zapret2. • Блокировки по IP → каскад VLESS+Reality. 2. Значение `PID=0` в `/proc/net/netfilter/nf_queue` — это нормально при работе nfqws2 с параметром `--user=zapret`. Проверяйте `PortID`. 3. `user_dropped=900k` — это не ошибка, а особенность работы: nfqws2 отбрасывает исходные пакеты после их модификации. 4. Если сайты работают нестабильно, возможно, ТСПУ (система фильтрации трафика) тестирует новые сигнатуры. Смените стратегию или обновите списки. Ссылки на репозитории (все на GitHub): • dpi-detector (Runnin4ik) — для анализа сбросов соединений (размером 16–20 КБ) • censorcheck (vernette) — проверка доступности ресурсов • Re-filter-lists (1andrevich) — списки Роскомнадзора (РКН) • blockcheckw (rcd27) — для быстрого подбора стратегии обхода
Итог: Пассивный обход (Zapret) + защищенный DNS + актуальные списки = стабильный доступ к 80% заблокированного контента. Для оставшихся 20% (блокировки по IP) потребуется туннель.
Главное — понять принцип работы, а не просто скопировать конфигурацию.
|