Bugün Linux’ta DPI engelini aşmak için adım adım Zapret kurulumu gerçekleştireceğiz.
Öncelikle şunu hatırlatmakta fayda var: Zapret varsayılan olarak Systemd, OpenRC, Runit, S6 ve SysV init sistemlerini destekliyor. Bu init sistemlerine sahip bütün Linux dağıtımlarında bu rehberi uygulayabilirsiniz.
Kuruluma başlamadan önce sisteminizde kurulu olması gereken bazı paketler var. Aşağıda dağıtıma göre hangi paketleri kurmanız gerektiğini bulabilirsiniz.
Debian tabanlı dağıtımlar için:
sudo apt update && sudo apt upgrade -y && sudo apt install build-essential linux-headers-$(uname -r) libnetfilter-queue1 libnetfilter-queue-dev
Fedora tabanlı dağııtmlar için:
sudo dnf update && sudo dnf upgrade && sudo dnf group install "Development Tools" && sudo dnf install kernel-devel libnetfilter_queue libnetfilter_queue-devel
openSUSE:
sudo zypper install -t patterns-base devel_basis kernel-default-devel libnetfilter_queue libnetfilter_queue-devel
Alpine Linux:
sudo apk update && sudo apk upgrade && sudo apk add alpine-base build-base libnetfilter_queue libnetfilter_queue-dev
Paketlerin kurulumu tamamlandıktan sonra asıl işleme geçiyoruz. Öncelikle Zapret’i kuracağımız klasörü seçmeliyiz. Bu noktada biz /opt klasörünü tercih edeceğiz.
cd /opt
Komutuyla klasöre geldik. Daha sonra Zapret’i bu klasöre indirmemiz gerekiyor. https://github.com/bol-van/zapret/releases kısmına gidip en güncel sürüme tıklayın. Buradan .tar.gz uzantılı olan dosyayı indireceğiz. Bunun için eğer tarayıcıdan giriyorsanız o dosyanın linkini sağ tıklayarak kopyalayın. Ardından şu komutları girin:
sudo wget https://github.com/bol-van/zapret/releases/download/v72.12/zapret-v72.12.tar.gz
sudo tar -xpvf zapret-*.tar.gz
sudo rm -rf zapret-*.tar.gz
sudo mv zapret-* zapret
cd zapret

Zapret’i indirdik lakin kullanmaya başlamadan önce derlememiz gerekiyor. Şu an elimizde var olan dosyalar Zapret’in kaynak kodları. Aşağıdaki kod ile derleme işlemini başlatıyoruz:
sudo make -j16
16 sayısı işlemci çekirdeklerine göre değişebilir. 16 çekirdeğiniz yoksa bile bu şekilde girebilirsiniz. Bir sorun olmayacaktır.
Derleme işlemi tamamlandıktan sonra blockcheck.sh dosyasını çalıştıracağız. Bu dosya ile hangi sitenin erişim engelini aşmak istiyorsak onun için geçerli olacak yöntemi bulacağız.
./blockcheck.sh

İlk başta hangi site için engeli aşmak istediğimizi belirteceğiz. Bu noktada biz roblox.com’u seçtik. Bir site için engeli aştığımızda hâliyle diğer siteler için de engelleri aşmış oluyoruz.
Değeri girdikten sonra bize ağ ile ilgili sorular soruyor. Sırayla enter, enter, enter, enter, enter, 1 değerlerini giriyoruz ve işlemin tamamlanmasını bekliyoruz. Uygun yöntem bulunana kadar bu işlem biraz uzun sürebilir. Sabırlı olmakta fayda var.
İşlem tamamlandığında “* SUMMARY” kısmında gördüğünüzyöntemler işe yaramış olan yöntemler. Bir not geçelim: Burada gözüken sonuçların %100 işe yarayacağının garantisi yok. Açıklamayı okursanız Zapret geliştiricisi de bunu izah etmiş. Yani bu testi yaptıktan sonra aldığınız sonuçlar işe yaramazsa birkaç kez daha test yapıp o sonuçları denemeniz gerekebilir.
Bizim testimizde 2 adet sonuç çıktı. Bunları bir kenara not ediyoruz. Ardından install_easy.sh dosyasını çalıştırıyoruz.
EDITOR=nvim ./install_easy.sh
Burada EDITOR=nvim kısmına terminalde hangi dosya düzenleme uygulamasını kullanıyorsanız onu girebilirsiniz. Çünkü düzenlememiz gereken bir dosya olacak.
Çıkan seçeneklere sırasıyla şu değerleri girebilirsiniz: enter, enter, enter, enter, y, y. Bu şekilde seçenekleri girdikten sonra yazı düzenleme uygulaması açılacak ve karşınıza seçenekler çıkacak. Bizim ilgileneceğimiz kısım en alt seçenek olan NFQWS_OPT= satırı. Bu seçeneğe ait değerlerin tamamını siliyoruz ve az önce not ettiğimiz değerlerden birini dosyaya yazıp kaydediyoruz. Ardından yine enter, enter, enter basarak işlemi tamamlıyoruz. Şimdi roblox.com ve discord.com/app linkleriyle bir test yapalım.
Gördüğünüz üzere denediğimiz ayar işe yaramadı. Şimdi ikinci ayarı deneyeceğiz. Tekrar install_easy.sh dosyasını çalıştırıyoruz ve aynı adımları uyguluyoruz.
EDITOR=nvim ./install_easy.sh
Seçeneğimizi dosyaya yazıp kaydediyoruz ve işlemi tamamlıyoruz. Tekrar test edelim.
Gördüğünüz üzere engeli aşmayı başardık. Bu şekilde artık rahatça engel derdi olmadan internette gezinebilirsiniz.
Eğer DNS ayarlamadıysanız veya ayarlamanız gerekirse, bunun için de systemd-resolved servisini kullanabilirsiniz.
Kurulum için öncelikle /etc klasörüne gidiyoruz. Burada değiştirmemiz gereken dosya resolv.conf dosyası. Ne olur ne olmaz önce bu dosyanın yedeğini alıyoruz.
cd /etc
sudo mv resolv.conf resolv.conf.bak
Şimdi bu dosyayı systemd-resolved’un kullandığı başka bir dosyaya işaret ettirmemiz gerekiyor. Bunun için aşağıdaki komutu kullanacağız:
sudo ln -s /run/systemd/resolve/stub-resolv.conf resolv.conf
Bu adımı da tamamladıktan sonra systemd-resolved’un ayarlarını yapacağız. Bunun için /etc/systemd/resolved.conf dosyasını istediğiniz yazı düzenleme uygulamanızla root yetkisi kullanarak açın.
sudo nvim /etc/systemd/resolved.conf
Dosyayı açtıktan sonra [Resolve] kısmının altında bakacağımız 3 ayar var: DNS, FallbackDNS ve DNSOverTLS.
DNS için biz Quad9 DNS sunucusunu ayarlayacağız. Dilerseniz başka bir DNS sunucusu da seçebilirsiniz. Bunun için DNS= satırına 9.9.9.9 149.112.112.112 değerlerini ekliyoruz.
FallbackDNS için Cloudflare DNS sunucusunu ayarlayacağız. Bunun için FallbackDNS= satırına 1.1.1.1 değerini ekliyoruz.
Son olarak DNSOverTLS= satırının başında varsa # işaretini kaldırıyoruz ve değeri yes değil ise yes yazıp dosyayı kaydediyoruz ve çıkıyoruz.
Ayarlama tamamlandı. Şimdi systemd-resolved servisini aktif edeceğiz.
sudo systemctl enable --now systemd-resolved
Ardından NetworkManager servisini yeniden başlatacağız.
sudo systemctl restart NetworkManager
Eğer farklı bir ağ yöneticisi kullanıyorsanız o servisi yeniden başlatabilirsiniz.

Tekrar internete bağlandığınızda artık DNS’iniz ayarlanmış olacak.