SpoofDPI/readme_ru.md
2024-07-27 11:00:53 +09:00

6.5 KiB
Raw Blame History

Pull Request-ы или любые формы вклада будут признательны

SpoofDPI

Можете прочитать на других языках: 🇬🇧English, 🇰🇷한국어, 🇨🇳简体中文, 🇷🇺Русский

Простое и быстрое программное обеспечение, созданное для обхода Deep Packet Inspection

image

Установка

Бинарник

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 string
        listen address (default "127.0.0.1")
  -debug
        enable debug output
  -dns-addr string
        dns address (default "8.8.8.8")
  -dns-port int
        port number for dns (default 53)
  -enable-doh
        enable 'dns over https'
  -no-banner
        disable banner
  -pattern string
        bypass DPI only on packets matching this regex pattern
  -port int
        port (default 8080)
  -timeout int
        timeout in milliseconds (default 2000)
  -url value
        Bypass DPI only on this url, can be passed multiple times
  -v    print spoof-dpi's version. this may contain some other relevant information
  -window-size int
        chunk size, in number of bytes, for fragmented client hello,
        try lower values if the default value doesn't bypass the DPI;
        set to 0 to use old (pre v0.10.0) client hello splitting method:
        fragmentation for the first data packet and the rest (default 50)

Перевод:

Использование: 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