Четверг, 19.06.2025, 20:29
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Главная | goodbyeDPI - Форум | Мой профиль | Регистрация | Выход | Вход
Обитель RC-инженера
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ВитГо  
goodbyeDPI
uwrteyДата: Четверг, 12.09.2024, 13:55 | Сообщение # 1
Генерал-майор
Группа: Администраторы
Сообщений: 3362
Репутация: 11
Статус: Offline
GoodbyeDPI — Утилита обхода Deep Packet Inspection
=========================

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

Он обрабатывает DPI, подключенный с помощью оптического разветвителя или зеркалирования портов (**Пассивный DPI**),
который не блокирует никакие данные, а просто отвечает быстрее,
чем запрошенный пункт назначения, и **Активный DPI**, подключенный последовательно.

**Windows 7, 8, 8.1, 10 or 11** с требуемыми правами администратора.

# Быстрый старт

скачай
(https://github.com/ValdikSS/GoodbyeDPI/releases),

Распакуйте файл и запустите скрипт


Для России: 1_russia_blacklist_dnsredir.cmd



Для других стран: 2_any_country_dnsredir.cmd


Эти скрипты запускают GoodbyeDPI в рекомендуемом режиме
с перенаправлением DNS-резолвера на DNS Яндекса на нестандартном порту (для предотвращения отравления DNS).
Если работает — поздравляю! Можете использовать как есть или настроить дальше.

# Как использовать

Скачайте
(https://github.com/ValdikSS/GoodbyeDPI/releases)
и запустите.

```
Использование:
goodbyedpi.exe [OPTION...]
-p - блокировать пассивный DPI
-q - блокировать QUIC/HTTP3
-r - замените Host на hoSt
-s - удалить пробел между заголовком хоста и его значением
-m - смешанный регистр заголовка хоста (test.com -> tEsT.cOm)
-f <value> установить значение фрагментации HTTP
-k <value> включить постоянную фрагментацию HTTP (keep-alive) и задать для нее значение
-n - не ждать подтверждения первого сегмента, если включен параметр -k
-e <value> установить фрагментацию HTTPS на значение
-a - дополнительный пробел между Method и Request-URI (включает -s, может нарушить работу сайтов)
-w - попытаться найти и проанализировать HTTP-трафик на всех обработанных портах (не только на порту 80)
--port <value> дополнительный порт TCP для выполнения фрагментации (и HTTP-трюки с -w)
--ip-id <value> обрабатывать дополнительный IP-идентификатор (десятичный, отбрасывать перенаправления и TCP RST с этим идентификатором).

Эту опцию можно указать несколько раз.

--dns-addr <value> перенаправлять UDP DNS-запросы на предоставленный IP-адрес (экспериментально)
--dns-port <value> перенаправить UDP DNS-запросы на указанный порт (по умолчанию 53)
--dnsv6-addr <value> перенаправлять DNS-запросы UDPv6 на предоставленный адрес IPv6 (экспериментально)
--dnsv6-port <value> перенаправлять DNS-запросы UDPv6 на указанный порт (по умолчанию 53)
--dns-verb печатать подробные сообщения о перенаправлении DNS
--blacklist <txtfile> выполнять обходные трюки только для имен хостов и поддоменов из предоставленного текстового файла (HTTP Host/TLS SNI).

Эту опцию можно указать несколько раз.

--allow-no-sni выполняет обход, если TLS SNI не может быть обнаружен при включенном --blacklist.
--frag-by-sni, если в пакете TLS обнаружен SNI, фрагментировать пакет непосредственно перед значением SNI.
--set-ttl <value> активирует режим поддельного запроса и отправляет его с указанным значением TTL.


ОПАСНО! Может нарушить работу веб-сайтов неожиданным образом. Используйте с осторожностью (или --blacklist).


--auto-ttl [a1-a2-m] активировать режим поддельного запроса, автоматически определять TTL и уменьшать
на основе расстояния.
Если расстояние меньше a2, TTL уменьшается на a2.
Если больше, используется масштаб (a1; a2) с расстоянием в качестве веса.
Если полученное TTL больше m(ax), установите его на m.
По умолчанию (если установлено): --auto-ttl 1-4-10. Также задает --min-ttl 3.


ОПАСНО! Может нарушить работу веб-сайтов неожиданным образом. Используйте с осторожностью (или --blacklist).


--min-ttl <value> минимальное расстояние TTL (128/64 - TTL), для которого следует отправлять поддельный запрос
в режимах --set-ttl и --auto-ttl.

--wrong-chksum активировать режим поддельного запроса и отправлять его с неверной контрольной суммой TCP.
Может не работать в виртуальной машине или с некоторыми маршрутизаторами, но безопаснее, чем set-ttl.

--wrong-seq активировать режим поддельного запроса и отправлять его с TCP SEQ/ACK в прошлом.
--native-frag фрагментировать (разделять) пакеты, отправляя их более мелкими пакетами, без уменьшения размера окна.
Работает быстрее (не замедляет соединение) и лучше.

--reverse-frag фрагментировать (разделять) пакеты так же, как --native-frag, но отправлять их в обратном порядке.
Работает с веб-сайтами, которые не могут обрабатывать сегментированные HTTPS TLS ClientHello
(потому что они получают поток TCP «объединенным»).

--max-payload [значение] пакеты с данными полезной нагрузки TCP больше, чем [значение], не будут обрабатываться.
Используйте эту опцию, чтобы снизить загрузку ЦП, пропуская большой объем данных
(например, передачу файлов) в уже установленных сеансах.
Может пропустить некоторые большие HTTP-запросы из обработки.
По умолчанию (если установлено): --max-payload 1200.

LEGACY-режимы:
-1 -p -r -s -f 2 -k 2 -n -e 2 // наиболее совместимый режим
-2 -p -r -s -f 2 -k 2 -n -e 40 // более высокая скорость для HTTPS, но при этом совместимая
-3 -p -r -s -e 40 // более высокая скорость для HTTP и HTTPS
-4 -p -r -s // лучшая скорость

Современные наборы режимов (более стабильные, более совместимые, более быстрые:
-5 -f 2 -e 2 --auto-ttl --reverse-frag --max-payload
-6 -f 2 -e 2 --wrong-seq --reverse-frag --max-payload
-7 -f 2 -e 2 --wrong-chksum --reverse-frag --max-payload
-8 -f 2 -e 2 --wrong-seq --wrong-chksum --reverse-frag --max-payload
-9 -f 2 -e 2 --wrong-seq --wrong-chksum --reverse-frag --max-payload -q (this is the default)

Примечание: комбинация --wrong-seq и --wrong-chksum генерирует два разных поддельных пакета.
```


Чтобы проверить, можно ли обойти DPI вашего интернет-провайдера, сначала убедитесь,
что ваш провайдер не отравляет ответы DNS, включив опцию «Безопасный DNS (DNS через HTTPS)» в своем браузере.


Chrome: Settings → [Privacy and security](chrome://settings/security) → Use secure DNS → With: NextDNS
Firefox: [Settings](about:preferences) → Network Settings → Enable DNS over HTTPS → Use provider: NextDNS

Затем запустите исполняемый файл `goodbyedpi.exe` без каких-либо параметров.
Если он работает — поздравляем!
Вы можете использовать его как есть или настроить дополнительно,
например, с помощью параметра `--blacklist`,
если список заблокированных веб-сайтов известен и доступен для вашей страны.

Если ваш провайдер перехватывает DNS-запросы,
вы можете использовать опцию `--dns-addr` для публичного DNS-резолвера,
работающего на нестандартном порту (например, Yandex DNS `77.88.8.8:1253`),
или настроить DNS через HTTPS/TLS с помощью сторонних приложений.

Проверьте скрипты .cmd и измените их в соответствии со своими предпочтениями и условиями сети.

# Как это работает?

### Пассивный DPI

Большинство пассивных DPI отправляют HTTP 302 Redirect,
если вы пытаетесь получить доступ к заблокированному веб-сайту по HTTP и TCP Reset в случае HTTPS,
быстрее, чем целевой веб-сайт.
Пакеты, отправляемые DPI, обычно имеют поле IP Identification, равное `0x0000` или `0x0001`,
как это видно у российских провайдеров.
Эти пакеты, если они перенаправляют вас на другой веб-сайт (страницу цензуры), блокируются GoodbyeDPI.

### Активный DPI

Активный DPI обмануть сложнее.
В настоящее время программное обеспечение использует 7 методов обхода Active DPI:

* Фрагментация на уровне TCP для первого пакета данных
* Фрагментация на уровне TCP для постоянных (keep-alive) сеансов HTTP
* Замена заголовка `Host` на `hoSt`
* Удаление пробела между именем заголовка и значением в заголовке `Host`
* Добавление дополнительного пробела между HTTP-методом (GET, POST и т. д.) и URI
* Смешивание регистра значения заголовка Host
* Отправка поддельных пакетов HTTP/HTTPS с низким значением Time-To-Live,
неправильной контрольной суммой
или неправильными номерами последовательности/подтверждения TCP для обмана DPI и предотвращения их доставки по назначению


Эти методы не должны нарушать работу веб-сайта, поскольку они полностью совместимы со стандартами TCP и HTTP,
однако их достаточно, чтобы предотвратить классификацию данных DPI и обойти цензуру.



Дополнительное пространство может нарушить работу некоторых веб-сайтов,
хотя это приемлемо по спецификации HTTP/1.1 (см. 19.3 Толерантные приложения).


Программа загружает драйвер WinDivert, который использует Windows Filtering Platform
для установки фильтров и перенаправления пакетов в пользовательское пространство.
Она работает, пока видно консольное окно, и завершается, когда вы закрываете окно.

# Как собрать из исходников

Этот проект можно собрать с помощью **GNU Make** и [**mingw**](https://mingw-w64.org).
Единственная зависимость — [WinDivert](https://github.com/basil00/Divert).

Чтобы собрать x86 exe, выполните:

`make CPREFIX=i686-w64-mingw32- WINDIVERTHEADERS=/path/to/windivert/include WINDIVERTLIBS=/path/to/windivert/x86`

И для x86_64:

`make CPREFIX=x86_64-w64-mingw32- BIT64=1 WINDIVERTHEADERS=/path/to/windivert/include WINDIVERTLIBS=/path/to/windivert/amd64`

# Как установить как службу Windows

Проверьте примеры в скриптах `service_install_russia_blacklist.cmd`, `service_install_russia_blacklist_dnsredir.cmd` и `service_remove.cmd`.

Измените их в соответствии с вашими потребностями.

# Известные проблемы

* Ужасно устаревшие установки Windows 7 не могут загрузить драйвер WinDivert из-за отсутствия поддержки цифровых подписей SHA256.
Установите KB3033929 [x86](https://www.microsoft.com/en-us/download/details.aspx?id=46078)/[x64]
(https://www.microsoft.com/en-us/download/details.aspx?id=46148)
или, что еще лучше, обновите всю систему с помощью Центра обновления Windows.

* Сетевые карты Intel/Qualcomm Killer: `Advanced Stream Detect` в Killer Control Center несовместим с GoodbyeDPI,
[отключите его](https://github.com/ValdikSS/GoodbyeDPI/issues/541#issuecomment-2296038239).

* ~~Некоторые стеки SSL/TLS не могут обрабатывать фрагментированные пакеты ClientHello,
и веб-сайты HTTPS не открываются.
Ошибка: [#4](https://github.com/ValdikSS/GoodbyeDPI/issues/4), [#64](https://github.com/ValdikSS/GoodbyeDPI/issues/64).
~~ Проблемы фрагментации исправлены в v0.1.7.

* ~~ESET Antivirus несовместим с драйвером WinDivert [#91](https://github.com/ValdikSS/GoodbyeDPI/issues/91).
Скорее всего, это ошибка антивируса, а не WinDivert.~~

# Похожие проекты

- **[zapret](https://github.com/bol-van/zapret)** от @bol-van (для MacOS, Linux и Windows)
- **[Green Tunnel](https://github.com/SadeghHayeri/GreenTunnel)** от @SadeghHayeri (для MacOS, Linux и Windows)
- **[DPI Tunnel CLI](https://github.com/nomoresat/DPITunnel-cli)** от @zhenyolka (для Linux и маршрутизаторов)
- **[DPI Tunnel для Android](https://github.com/nomoresat/DPITunnel-android)** от @zhenyolka (для Android)
- **[PowerTunnel](https://github.com/krlvm/PowerTunnel)** от @krlvm (для Windows, MacOS и Linux)
- **[PowerTunnel для Android](https://github.com/krlvm/PowerTunnel-Android)** от @krlvm (для Android)
- **[SpoofDPI](https://github.com/xvzc/SpoofDPI)** от @xvzc (для macOS и Linux)
- **[GhosTCP](https://github.com/macronut/ghostcp)** от @macronut (для Windows)
- **[ByeDPI](https://github.com/hufrea/byedpi)** для Linux/Windows + **[ByeDPIAndroid](https://github.com/dovecoteescapee/ByeDPIAndroid/)** для Android (без рута)
- **[youtubeUnblock](https://github.com/Waujito/youtubeUnblock/)** от @Waujito (для маршрутизаторов OpenWRT/Entware и Linux)

# Kudos

/// goodbyedpi.exe -1 -e 2 -- --dns-port 1253........................................... VitGo


не успеваю за своими мыслями......
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright MyCorp © 2025
Сделать бесплатный сайт с uCoz