4.3 KiB
⭐Pull Request-ы или любое другое участие приветствуется⭐
SpoofDPI
Можете прочитать на других языках: 🇬🇧English, 🇰🇷한국어, 🇨🇳简体中文, 🇷🇺Русский, 🇯🇵日本語
Простое и быстрое ПО, созданное для обхода Deep Packet Inspection
Installation
Инструкции по установке SpoofDPI вы можете найти здесь.
Использование
Usage: spoofdpi [опции...]
-addr string
listen address (default "127.0.0.1")
-banner
enable banner (default true)
-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'
-pattern value
bypass DPI only on packets matching this regex pattern; can be given multiple times
-port int
port (default 8080)
-system-proxy
enable system-wide proxy (default true)
-timeout int
timeout in milliseconds; no timeout when not given
-v print spoofdpi'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;
when not given, the client hello packet will be sent in two parts:
fragmentation for the first data packet and the rest
Если Вы используете любые VPN-расширения по типу Hotspot Shield в браузере Chrome, зайдите в Настройки > Расширения и отключите их.
OSX
Выполните команду spoofdpi
и прокси будет сконфигурирован автоматически
Linux
Выполните команду spoofdpi
и откройте Chrome с параметром прокси:
google-chrome --proxy-server="http://127.0.0.1:8080"
Как это работает
HTTP
Поскольку большинство веб-сайтов работают поверх HTTPS, SpoofDPI не обходит Deep Packet Inspection для HTTP запросов, однако он по-прежнему обеспечивает проксирование для всех запросов по HTTP.
HTTPS
Несмотря на то, что шифрование используется в TLS даже во время установки соединения, имена доменов по-прежнему пересылаются в открытом виде в пакете Client Hello. Другими словами, когда кто-то посторонний смотрит на пакет, он может легко понять, куда этот пакет направляется. Доменное имя может предоставить важную информацию во время обработки DPI, и видно, что соединение блокируется сразу после отправки пакета Client Hello. Я попробовал несколько способов обойти это и обнаружил, что, похоже, когда мы отправляем пакет Client Hello, разделенный на фрагменты, проверяется только первый фрагмент. Поэтому, чтобы обойти DPI, SpoofDPI отправляет на сервер первый 1 байт запроса, а затем отправляет все остальное.
Проекты, повлиявшие на SpoofDPI
Green Tunnel от @SadeghHayeri
GoodbyeDPI от @ValdikSS