تم تصميم هذا البرنامج لتجاوز أنظمة Deep Packet Inspection الموجودة في العديد من مزودي خدمة الإنترنت والتي تمنع الوصول إلى مواقع ويب معينة.
إنه يتعامل مع DPI المتصلة باستخدام الفاصل البصري أو انعكاس المنفذ ( Passive DPI ) الذي لا يحظر أي بيانات ولكنه يرد فقط بشكل أسرع من الوجهة المطلوبة، ويتم توصيل Active DPI بالتسلسل.
يلزم وجود Windows 7 أو 8 أو 8.1 أو 10 أو 11 مع امتيازات المسؤول.
تقوم هذه البرامج النصية بتشغيل GoodbyeDPI في الوضع الموصى به مع إعادة توجيه محلل DNS إلى Yandex DNS على منفذ غير قياسي (لمنع تسمم DNS).
إذا نجحت – تهانينا! يمكنك استخدامه كما هو أو تكوينه بشكل أكبر.
قم بتنزيل أحدث إصدار من صفحة الإصدارات وتشغيله.
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.
للتحقق مما إذا كان من الممكن التحايل على DPI الخاص بمزود خدمة الإنترنت لديك، تأكد أولاً من أن مزود الخدمة الخاص بك لا يسمم إجابات DNS عن طريق تمكين خيار "Secure DNS (DNS over HTTPS)" في متصفحك.
ثم قم بتشغيل الملف القابل للتنفيذ goodbyedpi.exe
دون أي خيارات. إذا نجحت – تهانينا! يمكنك استخدامه كما هو أو تكوينه بشكل أكبر، على سبيل المثال باستخدام خيار --blacklist
إذا كانت قائمة المواقع المحجوبة معروفة ومتاحة لبلدك.
إذا اعترض مزود الخدمة الخاص بك طلبات DNS، فقد ترغب في استخدام خيار --dns-addr
لمحلل DNS العام الذي يعمل على منفذ غير قياسي (مثل Yandex DNS 77.88.8.8:1253
) أو تكوين DNS عبر HTTPS/TLS باستخدام ثالث- تطبيقات الحزب.
تحقق من البرامج النصية .cmd وقم بتعديلها وفقًا لتفضيلاتك وظروف الشبكة.
ترسل معظم DPI السلبية إعادة توجيه HTTP 302 إذا حاولت الوصول إلى موقع الويب المحظور عبر HTTP وإعادة تعيين TCP في حالة HTTPS، وهو أسرع من موقع الويب الوجهة. عادةً ما تحتوي الحزم المرسلة بواسطة DPI على حقل تعريف IP يساوي 0x0000
أو 0x0001
، كما هو موضح لدى مقدمي الخدمة الروس. إذا كانت هذه الحزم تعيد توجيهك إلى موقع ويب آخر (صفحة الرقابة)، فسيتم حظرها بواسطة GoodbyeDPI.
يعد DPI النشط أكثر صعوبة في الخداع. يستخدم البرنامج حاليًا 7 طرق للتحايل على Active DPI:
Host
بـ hoSt
Host
لا ينبغي لهذه الطرق أن تخرق أي موقع ويب لأنها متوافقة تمامًا مع معايير TCP وHTTP، ومع ذلك فهي كافية لمنع تصنيف بيانات DPI والتحايل على الرقابة. قد تؤدي المساحة الإضافية إلى تعطيل بعض مواقع الويب، على الرغم من أنها مقبولة بموجب مواصفات HTTP/1.1 (راجع 19.3 التطبيقات المتسامحة).
يقوم البرنامج بتحميل برنامج التشغيل WinDivert الذي يستخدم Windows Filtering Platform لتعيين عوامل التصفية وإعادة توجيه الحزم إلى مساحة المستخدم. إنه يعمل طالما أن نافذة وحدة التحكم مرئية وينتهي عند إغلاق النافذة.
يمكن إنشاء هذا المشروع باستخدام GNU Make و mingw . التبعية الوحيدة هي WinDivert.
لإنشاء 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
تحقق من الأمثلة في البرامج النصية service_install_russia_blacklist.cmd
و service_install_russia_blacklist_dnsredir.cmd
و service_remove.cmd
.
تعديلها وفقا لاحتياجاتك الخاصة.
Advanced Stream Detect
في Killer Control Center غير متوافق مع GoodbyeDPI، قم بتعطيله.شكرًا @basil00 على WinDivert. هذا هو الجزء الرئيسي من هذا البرنامج.
شكرًا لكل مساهم في BlockCheck. سيكون من المستحيل فهم سلوك DPI بدون هذه الأداة المساعدة.