Este software está diseñado para evitar los sistemas de inspección profunda de paquetes que se encuentran en muchos proveedores de servicios de Internet y que bloquean el acceso a ciertos sitios web.
Maneja DPI conectados mediante un divisor óptico o duplicación de puerto ( DPI pasivo ) que no bloquea ningún dato sino que simplemente responde más rápido que el destino solicitado, y DPI activo conectado en secuencia.
Se requiere Windows 7, 8, 8.1, 10 u 11 con privilegios de administrador.
Estos scripts inician GoodbyeDPI en el modo recomendado con redirección del solucionador de DNS a Yandex DNS en un puerto no estándar (para evitar el envenenamiento de DNS).
Si funciona, ¡felicidades! Puede usarlo tal cual o configurarlo más.
Descargue la última versión desde la página de Lanzamientos y ejecútela.
Usage: goodbyedpi.exe [OPTION...]
-p block passive DPI
-q block QUIC/HTTP3
-r replace Host with hoSt
-s remove space between host header and its value
-m mix Host header case (test.com -> tEsT.cOm)
-f set HTTP fragmentation to value
-k enable HTTP persistent (keep-alive) fragmentation and set it to value
-n do not wait for first segment ACK when -k is enabled
-e set HTTPS fragmentation to value
-a additional space between Method and Request-URI (enables -s, may break sites)
-w try to find and parse HTTP traffic on all processed ports (not only on port 80)
--port additional TCP port to perform fragmentation on (and HTTP tricks with -w)
--ip-id handle additional IP ID (decimal, drop redirects and TCP RSTs with this ID).
This option can be supplied multiple times.
--dns-addr redirect UDP DNS requests to the supplied IP address (experimental)
--dns-port redirect UDP DNS requests to the supplied port (53 by default)
--dnsv6-addr redirect UDPv6 DNS requests to the supplied IPv6 address (experimental)
--dnsv6-port redirect UDPv6 DNS requests to the supplied port (53 by default)
--dns-verb print verbose DNS redirection messages
--blacklist perform circumvention tricks only to host names and subdomains from
supplied text file (HTTP Host/TLS SNI).
This option can be supplied multiple times.
--allow-no-sni perform circumvention if TLS SNI can't be detected with --blacklist enabled.
--frag-by-sni if SNI is detected in TLS packet, fragment the packet right before SNI value.
--set-ttl activate Fake Request Mode and send it with supplied TTL value.
DANGEROUS! May break websites in unexpected ways. Use with care (or --blacklist).
--auto-ttl [a1-a2-m] activate Fake Request Mode, automatically detect TTL and decrease
it based on a distance. If the distance is shorter than a2, TTL is decreased
by a2. If it's longer, (a1; a2) scale is used with the distance as a weight.
If the resulting TTL is more than m(ax), set it to m.
Default (if set): --auto-ttl 1-4-10. Also sets --min-ttl 3.
DANGEROUS! May break websites in unexpected ways. Use with care (or --blacklist).
--min-ttl minimum TTL distance (128/64 - TTL) for which to send Fake Request
in --set-ttl and --auto-ttl modes.
--wrong-chksum activate Fake Request Mode and send it with incorrect TCP checksum.
May not work in a VM or with some routers, but is safer than set-ttl.
--wrong-seq activate Fake Request Mode and send it with TCP SEQ/ACK in the past.
--native-frag fragment (split) the packets by sending them in smaller packets, without
shrinking the Window Size. Works faster (does not slow down the connection)
and better.
--reverse-frag fragment (split) the packets just as --native-frag, but send them in the
reversed order. Works with the websites which could not handle segmented
HTTPS TLS ClientHello (because they receive the TCP flow "combined").
--fake-from-hex Load fake packets for Fake Request Mode from HEX values (like 1234abcDEF).
This option can be supplied multiple times, in this case each fake packet
would be sent on every request in the command line argument order.
--fake-with-sni Generate fake packets for Fake Request Mode with given SNI domain name.
The packets mimic Mozilla Firefox 130 TLS ClientHello packet
(with random generated fake SessionID, key shares and ECH grease).
Can be supplied multiple times for multiple fake packets.
--fake-gen Generate random-filled fake packets for Fake Request Mode, value of them
(up to 30).
--fake-resend Send each fake packet value number of times.
Default: 1 (send each packet once).
--max-payload [value] packets with TCP payload data more than [value] won't be processed.
Use this option to reduce CPU usage by skipping huge amount of data
(like file transfers) in already established sessions.
May skip some huge HTTP requests from being processed.
Default (if set): --max-payload 1200.
LEGACY modesets:
-1 -p -r -s -f 2 -k 2 -n -e 2 (most compatible mode)
-2 -p -r -s -f 2 -k 2 -n -e 40 (better speed for HTTPS yet still compatible)
-3 -p -r -s -e 40 (better speed for HTTP and HTTPS)
-4 -p -r -s (best speed)
Modern modesets (more stable, more compatible, faster):
-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)
Note: combination of --wrong-seq and --wrong-chksum generates two different fake packets.
Para verificar si se puede eludir el DPI de su ISP, primero asegúrese de que su proveedor no envenene las respuestas DNS habilitando la opción "DNS seguro (DNS sobre HTTPS)" en su navegador.
Luego ejecute el ejecutable goodbyedpi.exe
sin ninguna opción. Si funciona, ¡felicidades! Puede usarlo tal como está o configurarlo más, por ejemplo, usando la opción --blacklist
si la lista de sitios web bloqueados es conocida y está disponible para su país.
Si su proveedor intercepta solicitudes de DNS, es posible que desee utilizar la opción --dns-addr
para un solucionador de DNS público que se ejecute en un puerto no estándar (como Yandex DNS 77.88.8.8:1253
) o configurar DNS a través de HTTPS/TLS utilizando terceros. solicitudes de partido.
Verifique los scripts .cmd y modifíquelos según sus preferencias y condiciones de red.
La mayoría de los DPI pasivos envían redireccionamiento HTTP 302 si intenta acceder a un sitio web bloqueado a través de HTTP y restablecimiento de TCP en caso de HTTPS, más rápido que el sitio web de destino. Los paquetes enviados por DPI suelen tener un campo de identificación de IP igual a 0x0000
o 0x0001
, como se ve con los proveedores rusos. Estos paquetes, si te redireccionan a otro sitio web (página de censura), son bloqueados por GoodbyeDPI.
El DPI activo es más complicado de engañar. Actualmente, el software utiliza 7 métodos para eludir el DPI activo:
Host
con hoSt
Host
Estos métodos no deberían dañar ningún sitio web, ya que son totalmente compatibles con los estándares TCP y HTTP, pero son suficientes para evitar la clasificación de datos DPI y eludir la censura. El espacio adicional puede dañar algunos sitios web, aunque es aceptable según la especificación HTTP/1.1 (consulte 19.3 Aplicaciones tolerantes).
El programa carga el controlador WinDivert que utiliza la plataforma de filtrado de Windows para configurar filtros y redirigir paquetes al espacio de usuario. Se ejecuta mientras la ventana de la consola esté visible y finaliza cuando cierra la ventana.
Este proyecto se puede construir usando GNU Make y mingw . La única dependencia es WinDivert.
Para compilar el exe x86, ejecute:
make CPREFIX=i686-w64-mingw32- WINDIVERTHEADERS=/path/to/windivert/include WINDIVERTLIBS=/path/to/windivert/x86
Y para x86_64:
make CPREFIX=x86_64-w64-mingw32- BIT64=1 WINDIVERTHEADERS=/path/to/windivert/include WINDIVERTLIBS=/path/to/windivert/amd64
Consulte ejemplos en los scripts service_install_russia_blacklist.cmd
, service_install_russia_blacklist_dnsredir.cmd
y service_remove.cmd
.
Modifícalos según tus propias necesidades.
Advanced Stream Detect
en Killer Control Center no es compatible con GoodbyeDPI, desactívelo.Gracias @basil00 por WinDivert. Esa es la parte principal de este programa.
Gracias por cada colaborador de BlockCheck. Sería imposible entender el comportamiento del DPI sin esta utilidad.