Son aylarda kendi kendine DNS sunucusu çalıştırma deneyimlerim sonucunda, bu hizmetin ana sunucuyla aynı yerde barındırılmasının her zaman daha iyi olduğunu öğrendim. Böylece, ana sunucu çökerse, tüm ev ağınızın da çökmesini engellemiş olursunuz. Pi-hole’dan AdGuard Home’a ve Technitium‘a kadar birçok DNS sunucusunu denedim, ancak hepsi ana sunucumda çalışıyordu. Son olarak, bu hizmeti ayrı bir donanım üzerinde çalıştırmaya karar verdim.
Bir Raspberry Pi genellikle Pi-hole gibi DNS sunucuları için kullanılır çünkü ucuzdur, küçüktür ve ağda sessizce durması amaçlanmıştır. Ve Pi-hole’un büyük veya küçük bir cihazda çalışıp çalışmaması önemli değildir. Ben de bir Raspberry Pi almayı düşünmüştüm. Ancak, özel bir donanım satın almadan önce, çekmecemde duran eski Android telefonumu kullanarak bu işi yapıp yapamayacağımı merak ettim.

Neredeyse bir Raspberry Pi alacaktım. Sonra, çekmecemde ne olduğuna baktım.

Zaten elime olan bir cihazı kullanmak daha mantıklıydı.

Çoğu Reddit gönderisi ve teknik forum, DNS sunucusunu ayrı bir ince istemci üzerinde çalıştırmanızı önerir. Ben AdGuard Home (AGH) ve Unbound’u diğer kendi kendine barındırılan hizmetlerimle aynı ana sunucu üzerinde çalıştırdım. Bu durumun neden yanlış olduğunu zamanla anladım.

Eski bir dizüstü bilgisayarı, ana sunucum için kullandığım ve yaklaşık 12 GB belleği olan bir cihazdı. Şu anda bu cihazda 20’den fazla uygulama çalışıyor. Dolayısıyla, konteynerlerden biri beklenmedik bir yük oluşturduğunda, DNS sunucusu gibi diğer uygulamalar da etkileniyor ve sorgu çözümü yavaşlıyor.

DNS sunucum için bir Raspberry Pi almayı düşünüyordum. Ancak, başlamadan önce, eski Android telefonumu kullanarak Linux sunucusu çalıştırmanın mümkün olduğunu hatırladım daha önce yazmıştım. Eğer eski telefonum zaten Linux çalıştırabiliyorsa, neden DNS sunucusunu da ona kurup denemeyelim?

DNS sunucuları, ev ağını yönetenlerin genellikle Raspberry Pi üzerinde çalıştırmaya öncelik verdiği yaygın bir hizmettir. Bunun nedeni, DNS filtrelemenin çok fazla işlem gücü gerektirmemesidir. Ben de Pi-hole’u kullanmayı düşündüm, çünkü topluluğu geniş ve destekleniyor. Amacım, kullanılmayan eski bir telefonun gerçekten işe yarayan bir sunucuya dönüştürülüp dönüşemeyeceğini görmekti.
Telefonu seçmemin nedeni, daha iyi donanıma sahip olması değildi; aksine, kullanılmayan bir cihazı değerlendirmek istiyordum. Telefon üzerinde Linux çalıştırmak bir şeydi, ancak onu DNS sunucusu gibi davranmasını sağlamak başka bir konuydu.
Kurulumun zorlu aşamaları
Kök erişimi elde etmek en kolay kısım oldu.
Pi-hole, Android telefonlarda varsayılan olarak kök erişimi olmadığı için doğrudan çalışmak üzere tasarlanmamıştır ve Pi-hole’un 53 numaralı bağlantı noktasını kullanabilmesi için bu bağlantı noktasının açık olması gerekir. Bu nedenle, ilk adım kök erişimini elde etmekti ve benim durumumda bu zaten mümkün olmuştu çünkü telefonumun önyükleme ayarı açılmıştı. Kök erişimi sağladıktan sonra, stratejim netleşti: Termux -> proot-distro -> Debian -> Pi-hole. Debian’i seçtim çünkü ev sunucumda zaten kullanıyordum; aksi takdirde, Ubuntu veya başka herhangi bir dağıtım da işe yarayabilirdi, yeter ki Pi-hole tarafından destekleniyor olsun.
İlk olarak, Pi-hole’un önerdiği tek satırlık otomatik kurulumu denedim, ancak IPv4 rotasını tespit edemediği için devam etmedi. Uzun bir sorun giderme sürecinden sonra, bunun proot’un yükleyici üzerindeki ip route get tespitine müdahale ettiği için yanlış bir tespit olduğunu fark ettim. Bu nedenle, otomatik kurulum yerine, yükleyiciyi indirdim ve basic-install.sh dosyasındaki kontrolü atladım. Bundan sonra, kurulum sorunsuz bir şekilde devam etti. Kurulum tamamlandıktan sonra, temel yapılandırmayı yaptım ve bu, Pi-hole’un telefonda çalışıp çalışmadığının ilk işaretiydi.
Ne yazık ki, bu tek sorun değildi. Genellikle, Pi-hole, FTLDNS veya pihole-FTL hizmetinin otomatik olarak başlatılması için bir sistem yöneticisine ihtiyaç duyar. Ancak, Debian proot içinde çalıştığı için, systemd doğrudan kullanılamıyordu, bu nedenle hizmeti manuel olarak başlatmak zorunda kaldım. İşte o anda, deneyim “Pi-hole’u eski bir telefonda kur”dan “Pi-hole’un sunucu gibi davranmasını sağlamak”e dönüştü. Bu sorun çözüldükten sonra, başka bir sorunla karşılaştım.
Proot içinde, kök yetkisine sahip olduğuma dair bir yanılsama oluşuyordu, ancak bu gerçek kök yetkisi değildi. Bu nedenle, FTL 53 numaralı bağlantı noktasını kullanamıyordu. Termux’e süper kullanıcı yetkisi vererek ve Magisk kullanarak, sistemin gerçek kök yetkisine sahip olduğundan emin olmak zorunda kaldım. Ancak, bu son sorun da değildi. FTL, proot’un –kill-on-exit davranışı nedeniyle sessizce kapanıyordu ve FTL’nin daemon olarak çalışması gerekiyordu. Son olarak, pihole-FTL -f (daemon değil) komutuyla sorunu çözdüm ve FTL’yi kalıcı bir tmux oturumunda çalıştırdım.

Tüm bu zorlukların üstesinden geldikten sonra, sonunda başarılı oldum. Pi-hole çalışıyordu, FTL sürekli olarak çalışıyordu, dig komutu doğru DNS yanıtlarını veriyordu ve yönetim paneline erişilebiliyordu.

Ev ağımın DNS sunucusu olarak kullanmaya karar vermek

Ve tüm sorunlarıyla birlikte yaşamaya devam etmek
Açık olmak gerekirse, amacım AGH’yi Pi-hole ile değiştirmek değildi; sadece çekmecemde duran eski bir cihazın işe yarayıp yaramayacağını görmek istiyordum. Ancak, eski telefonu Pi-hole sunucusu olarak çalıştırmak, işin yarısıydı. Gerçek test, onu gerçek bir ağda kullanmaktı.

Ona güvenmeden önce, dikkate almam gereken bir adım daha vardı. O noktada, Pi-hole çalışıyordu, ancak yeniden başlatıldığında otomatik olarak başlaması gerekiyordu. Bu sorunu çözmek için Termux:Boot’u kullandım. Pi-hole’un yeniden başlatıldıktan sonra otomatik olarak başlaması için küçük bir betik oluşturdum ve onu ~/.termux/boot/ dizinine yerleştirdim.
Bu işlem tamamlandıktan sonra, LAN DNS ayarlarını telefonumun IP adresine değiştirdim ve 24 saat boyunca çalışmasını sağladım. Ertesi gün, yönetim paneline eriştim ve her şeyin normal göründüğünü gördüm, tıpkı diğer Pi-hole kurulumlarında olduğu gibi. Bu, benim için gerçek bir başarıydı. Dokuz aktif cihazımda 55.000’den fazla sorguyu işledi ve bunlardan yaklaşık %15’i iki adet blok listesi ve özel alan adları sayesinde engellendi.
Dikkate alınması gereken bir nokta var: bu kurulumda DoH/DoT (DNS over HTTPS/TLS) özelliği yoktu. Tüm DNS sorguları, Pi-hole üzerinden şifrelenmeden yapılıyordu. Eğer gizliliğe önem veriyorsanız, dnscrypt-proxy gibi bir araçla bu özelliği ekleyebilirsiniz. Geçmişte de bu tür bir kurulum yapmıştım ve burada da aynı şekilde çalışması mümkün.
Telefonun sürekli olarak güç aldığı veya düzenli olarak şarj edildiği bir ortamda olması gerekir. Ayrıca, sistemin düzgün bir başlatma mekanizmasına sahip olmadığı için, hataların dikkatlice yönetilmesi gerekir.
Sonuç olarak, karmaşık bir kurulum sürecinden sonra, sonuç oldukça tatmin ediciydi. Eski bir Android telefonun işe yarayabileceğini ve aynı zamanda bazı dezavantajları olduğunu da gösterdi. Herkesin eski telefonunu alıp Pi-hole kurmasını tavsiye etmiyorum. Ancak, yeni donanım satın almak istemeyen ve sorun giderme konusunda sabırlı olanlar için bu, Raspberry Pi’ye iyi bir alternatif olabilir Raspberry Pi alternatifi.
Peki, değdi mi?
Bu deneyim, beklediğimden daha verimli sonuçlar verdi. Telefon, konsepti kanıtladı, ancak aynı zamanda ev ağını yönetenlerin neden özel donanım tercih ettiğini de gösterdi. Asıl zorluk, Pi-hole’u eski bir telefonda çalıştırmak değil, telefonun sunucu gibi davranmasını sağlamaktı. Sonuç olarak, eski Android telefonum işe yaradı ve ev ağımın DNS sunucusu oldu. Telefon ile Raspberry Pi arasındaki temel fark, telefonun daha iyi donanıma sahip olmasıdır, ancak Raspberry Pi’nin kurulumu ve yönetimi daha kolaydır. Yeni bir donanım satın almadan önce, çekmecenizde ne olduğuna bakın.

Bu Gelişmeyi Toplulukta Değerlendirin
Haber hakkındaki düşüncelerinizi, donanım deneyimlerinizi ve teknik sorularınızı topluluk üyeleriyle anlık olarak tartışın.
Bir yanıt yazın