
Bu rehberde Windows üzerinde Zapret ile DPI engellerini aşmayı, DNSCrypt-Proxy ile DNS sorgularını şifrelemeyi ve her iki uygulamayı Windows servisi olarak otomatik çalışacak şekilde kurmayı adım adım anlatıyoruz.
Gereksinimler:
- DNSCrypt-Proxy: GitHub linki. İşletim sistemi mimarinize göre dnscrypt-proxy-win32-x.x.xx.zip ya da dnscrypt-proxy-win64-x.x.xx.zip dosyalarından birine tıklayarak indirin.
- Zapret: GitHub linki. Yeşil “Code” butonu > Download ZIP’e tıklayarak indirin.
- Kendi ISS sağlayıcınıza uygun Zapret parametresi.
DİKKAT!!: Bu yazıdaki herhangi bir adımı sorunsuz uygulayabilmeniz için bilgisayarınızda başka aktif herhangi bir DPI atlatma servisi ya da VPN olmamalı.
Kendi Zapret parametrenizi nasıl bulursunuz?
Videolu anlatım:

GoodbyeDPI Alternatifi: Zapret ile Windows'ta Discord ve Roblox Erişimi
Eğer aşağıdaki yazılı anlatım size karışık geliyorsa yukarıdaki videonun 0:28-3:30 arasını izlemeniz yeterlidir. Tek fark, parametreyi bulduktan sonra videodaki gibi devam etmek yerine bu rehberi takip etmenizdir. Parametreyi bulduktan sonra Ctrl+F ile “SUMMARY” kelimesini aratıp buradan okumaya devam edin.
Yazılı anlatım:
- Bilgisayarınızın DNS adresini geçici olarak değiştirmeniz gerekmekte. Bunun için PowerShell’i yönetici olarak çalıştırın ve şunu yapıştırın:
Get-NetAdapter | Where-Object {$_.Status -eq "Up"} | ForEach-Object { Set-DnsClientServerAddress -InterfaceAlias $_.Name -ServerAddresses ("1.1.1.1","1.0.0.1") }
- İndirdiğiniz zapret-win-bundle-master klasöründeki blockcheck klasörü içindeki blockcheck.cmd’e çift tıklayarak çalıştırın.
- Size uygun parametreyi bulmak için taramaya başlamadan önce aşağıdaki soruları soracak. İlk soruya Türkiye’de erişim engeli bulunan herhangi bir alan adını yazın. Örneğin: pastebin.com
specify domain(s) to test. multiple domains are space separated. URIs are supported (rutracker.org/forum/index.php) domain(s) (default: rutracker.org) : pastebin.com
- Sadece enter basın.
ip protocol version(s) - 4, 6 or 46 for both (default: 4) :
- N yazıp enter basın.
check http (default : Y) (Y/N) ? n
- Bu ikisi için de sadece enter basın.
check https tls 1.2 (default : Y) (Y/N) ? check https tls 1.3 (default : N) (Y/N) ?
- N yazıp enter basın.
check http3 QUIC (default : Y) (Y/N) ? n
- Sadece enter basın.
how many times to repeat each test (default: 1) :
- 1 yazıp enter basın.
quick - scan as fast as possible to reveal any working strategy standard - do investigation what works on your DPI force - scan maximum despite of result 1 : quick 2 : standard 3 : force your choice (default : standard) : 1
Bu işlemden sonra kısa bir taramadan sonra sizin için çalışan ilk uygun parametreyi bulup en aşağıda gösterecek, örneğin bizim için gösterdiği bu:
!!!!! AVAILABLE !!!!! !!!!! curl_test_https_tls12: working strategy found for ipv4 pastebin.com : winws --dpi-desync=fake --dpi-desync-ttl=3 !!!!! clearing winws redirection * SUMMARY curl_test_https_tls12 ipv4 pastebin.com : winws --wf-l3=ipv4 --wf-tcp=443 --dpi-desync=fake --dpi-desync-ttl=3 Please note this SUMMARY does not guarantee a magic pill for you to copy/paste and be happy. Understanding how strategies work is very desirable. This knowledge allows to understand better which strategies to prefer and which to avoid if possible, how to combine strategies. Blockcheck does it's best to prioritize good strategies but it's not bullet-proof. It was designed not as magic pill maker but as a DPI bypass test tool. press enter to continue
Burada * SUMMARY satırının altındaki ilk satırdaki winws yazısından sonra çift yan çizgi ile başlayan parametreyi o yan çizgiler dahil sonuna kadar kopyalayıp bir yerde SAKLAYIN.
Parametreyi not aldıktan sonra DNS ayarlarınızı eski haline döndürebilirsiniz. PowerShell’i yönetici olarak çalıştırarak şunu yapıştırın:
Get-NetAdapter | Where-Object {$_.Status -eq "Up"} | ForEach-Object { Set-DnsClientServerAddress -InterfaceAlias $_.Name -ResetServerAddresses }
Kurulum:
- Çıkardığınız dnscrypt-proxy-winxx-x.x.xx klasörü içindeki win64 klasörünün adını dnscrypt-proxy yapın. zapret-win-bundle-master klasörünün içindeki zapret-winws klasörünü ise yeniden adlandırmadan olduğu gibi ayırın.
- Tavsiye olarak yanlışlıkla silmeyeceğiniz/veya unutmayacağınız bir konumda başka bir klasör daha oluşturun. Örneğin C: diski içinde DNS isimli bir klasör oluşturduğunuzu varsayalım.
- Yukarıda bahsettiğimiz 2 klasörü “C:\DNS” klasörü içine atın.
- Eğer her şeyi doğru yaptıysanız klasör yapısı şuna benzeyecek:
C:\DNS
├───dnscrypt-proxy
│ dnscrypt-proxy.exe
│ ...
└───zapret-winws
│ winws.exe
│...
- dnscrypt-proxy klasörü içine gidin ve içine aşağıdaki .toml uzantılı config dosyasını indirin. Dosya adını asla düzenlemeyin.
server_names = ['mullvad-adblock-doh']
## Buradaki server name'i çoğaltabilir, public-resolvers.md dosyasındaki istediğiniz herhangi
## bir server name ile değiştirebilirsiniz. Şu anki server Mullvad AdBlock DNS kullanmakta.
## Reklamları ve tracker'ları engeller, log tutmaz, DNSSEC destekler.
listen_addresses = ['127.0.0.1:53', '[::1]:53']
## Aşağıdaki ayarlar güvenlik (DNSSEC, no-log) ve performans (cache) için önerilen değerlerdir.
ipv4_servers = true
ipv6_servers = true
dnscrypt_servers = true
doh_servers = true
require_dnssec = true
require_nolog = true
require_nofilter = false
cache = true
cache_size = 4096
cache_min_ttl = 900
cache_max_ttl = 86400
cache_neg_min_ttl = 60
cache_neg_max_ttl = 600
[sources]
[sources.'public-resolvers']
urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md']
cache_file = 'public-resolvers.md'
minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
prefix = ''
- C:\DNS klasörüne geri dönün, ve içine aşağıdaki 2 bat scriptini indirin:
@echo off
chcp 65001 >nul
title DNSCrypt-Proxy + Zapret kur
net session >nul 2>&1 || (powershell -Command "Start-Process '%~f0' -Verb RunAs" & exit)
echo DNSCrypt-Proxy + Zapret servis kurulumu başlatılıyor...
echo.
set "DNSCRYPT=%~dp0dnscrypt-proxy\dnscrypt-proxy.exe"
set "ZAPRET=%~dp0zapret-winws\winws.exe"
REM ==========================================================
REM Parametre bulma adımlarından sonra bulduğunuz parametreyi
REM set "ZAPRET_ARGS= ile başlayan satırdan sondaki çift tırnağa
REM kadar ama çift tırnak hariç olan kısmı elle değiştirmelisiniz.
REM ==========================================================
set "ZAPRET_ARGS=--wf-l3=ipv4 --wf-tcp=443 --dpi-desync=fake --dpi-desync-ttl=3"
if not exist "%DNSCRYPT%" echo DNSCrypt bulunamadı & pause & exit
if not exist "%ZAPRET%" echo Zapret bulunamadı & pause & exit
"%DNSCRYPT%" -service uninstall >nul 2>&1
"%DNSCRYPT%" -service install && "%DNSCRYPT%" -service start || echo DNSCrypt hatası
net stop winws1 >nul 2>&1
sc delete winws1 >nul 2>&1
sc create winws1 binPath= "\"%ZAPRET%\" %ZAPRET_ARGS%" DisplayName= "zapret DPI atlatma: winws1" start= auto
sc description winws1 "zapret DPI atlatma aracı"
sc start winws1
for /f "skip=1 tokens=3*" %%i in ('netsh interface show interface') do (
echo %%j | findstr /i "Ethernet İnternet Wi-Fi Kablosuz Yerel Ağ" >nul 2>&1
if not errorlevel 1 (
netsh interface ipv4 set dns "%%j" static 127.0.0.1 >nul 2>&1
netsh interface ipv6 set dns "%%j" static ::1 >nul 2>&1
)
)
echo.
echo Tüm servisler başlatıldı ve DNS yapılandırıldı.
echo.
echo Çıkmak için bir tuşa basın...
pause >nul
@echo off
chcp 65001 >nul
title DNSCrypt-Proxy + Zapret kaldır
net session >nul 2>&1 || (powershell -Command "Start-Process '%~f0' -Verb RunAs" & exit)
echo Servisler durduruluyor ve DNS ayarları eski haline getiriliyor...
set "DNSCRYPT=%~dp0dnscrypt-proxy\dnscrypt-proxy.exe"
if exist "%DNSCRYPT%" (
"%DNSCRYPT%" -service stop >nul 2>&1
"%DNSCRYPT%" -service uninstall >nul 2>&1
)
net stop winws1 >nul 2>&1
sc delete winws1 >nul 2>&1
sc stop windivert >nul 2>&1
sc delete windivert >nul 2>&1
for /f "skip=1 tokens=3*" %%i in ('netsh interface show interface') do (
echo %%j | findstr /i "Ethernet İnternet Wi-Fi Kablosuz Yerel Ağ" >nul 2>&1
if not errorlevel 1 (
netsh interface ipv4 set dns "%%j" source=dhcp >nul 2>&1
netsh interface ipv6 set dns "%%j" source=dhcp >nul 2>&1
)
)
ipconfig /flushdns >nul 2>&1
echo.
echo Servisler durduruldu, DNS ayarları sıfırlandı.
echo.
echo Çıkmak için bir tuşa basın...
pause >nul
- ÇOK ÖNEMLİ: service-install-all.bat’ı not defteri ile açıp içindeki set ZAPRET_ARGS= ile başlayan satırdaki parametreyi, scriptin içinde anlatıldığı gibi Parametre bulma adımlarından sonra bulduğunuz ve size özel olan Zapret parametresi ile manuel değiştirip kaydetmeniz gerek.
- Bu işlemden sonra service-install-all.bat’ı çift tıkla çalıştırarak Zapret + DNSCrypt ikilisini sisteminize kurabilirsiniz. Kaldırmak için de service-uninstall-all.bat’ı çalıştırmanız yeterli.
Kurulum tamamlandı. Bundan sonra service-uninstall-all.bat çalıştırılmadığı sürece Zapret ve DNSCrypt her Windows açılışında otomatik olarak başlayacak ve arka planda servis olarak çalışacak.