6.2 KiB
⭐Pull Request-ы или любые формы вклада будут признательны⭐
SpoofDPI
Можете прочитать на других языках: 🇬🇧English, 🇰🇷한국어, 🇨🇳简体中文, 🇷🇺Русский
Простое и быстрое программное обеспечение, созданное для обхода Deep Packet Inspection
Установка
Бинарник
SpoofDPI будет установлен в директорию ~/.spoof-dpi/bin
.
Чтобы запустить SpoofDPI в любой директории, добавьте строку ниже в ~/.bashrc || ~/.zshrc || ...
export PATH=$PATH:~/.spoof-dpi/bin
curl
Установите последний бинарник с помощью curl
- OSX
curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s osx
- Linux
curl -fsSL https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s linux
wget
Установите последний бинарник с помощью wget
- OSX
wget -O - https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s osx
- Linux
wget -O - https://raw.githubusercontent.com/xvzc/SpoofDPI/main/install.sh | bash -s linux
Go
Вы также можете установить SpoofDPI с помощью go install
$ go install github.com/xvzc/SpoofDPI/cmd/spoof-dpi
Не забудьте, что $GOPATH должен быть установлен в Вашем $PATH
Git
Вы также можете собрать SpoofDPI
$ git clone https://github.com/xvzc/SpoofDPI.git
$ cd SpoofDPI
$ go build ./cmd/...
Использование
Usage: spoof-dpi [options...]
--addr=<addr> | default: 127.0.0.1
--dns=<addr> | default: 8.8.8.8
--port=<number> | default: 8080
--debug=<bool> | default: false
--no-banner=<bool> | default: false
--timeout=<number> | default: 0
| Enforces specific connection timeout. Set 0 to turn off
--url=<url> | Can be used multiple times. If set,
| it will bypass DPI only for this url.
| Example: --url=google.com --url=github.com
--pattern=<regex> | If set, it will bypass DPI only for packets
| that matches this regex pattern.
| Example: --pattern="google|github"
Перевод:
Использование: spoof-dpi [параметры...]
--addr=<адрес> | Адрес. По умолчанию 127.0.0.1
--dns=<адрес> | Адрес DNS-сервера. По умолчанию 8.8.8.8
--port=<порт> | Порт. По умолчанию 8080
--debug=<булев> | Включать ли режим отладки. По умолчанию false
--banner=<булев> | По умолчанию true
--url=<url> | Можно использовать несколько раз. Если
| задано, будет применятся
| обход только для данного url.
| Пример: --url=google.com --url=github.com
--pattern=<regex> | Если задано, будет применятся обход
| только для пакетов, которые соответствуют
| этому регулярному выражению.
| Пример: --pattern="google|github"
Если Вы используете любые "VPN"-расширения по типу Hotspot Shield в браузере
Chrome, зайдите в Настройки > Расширения и отключите их.
OSX
Выполните $ spoof-dpi
и прокси автоматически установится
Linux
Выполните $ spoof-dpi
и откройте свой любимый браузер с параметром прокси
google-chrome --proxy-server="http://127.0.0.1:8080"
Как это работает
HTTP
Поскольку большинство веб-сайтов в мире теперь поддерживают HTTPS, SpoofDPI не обходит Deep Packet Inspection для HTTP-запросов, однако он по-прежнему обеспечивает прокси-соединение для всех HTTP-запросов.
HTTPS
Хотя TLS 1.3 шифрует каждый процесс рукопожатия, имена доменов по-прежнему отображаются в виде открытого текста в пакете Client Hello. Другими словами, когда кто-то другой смотрит на пакет, он может легко догадаться, куда направляется пакет. Доменное имя может предоставлять значительную информацию во время обработки DPI, и мы можем видеть, что соединение блокируется сразу после отправки пакета Client Hello. Я попробовал несколько способов обойти это, и обнаружил, что, похоже, только первый фрагмент проверяется, когда мы отправляем пакет Client Hello, разделенный на фрагменты. Чтобы обойти это, SpoofDPI отправляет на сервер первый 1 байт запроса, а затем отправляет все остальное.
SpoofDPI не расшифровывает Ваши HTTPS-запросы, так что нам не нужны SSL-сертификаты.
Вдохновлено
Green Tunnel от @SadeghHayeri
GoodbyeDPI от @ValdikSS