İnternet dünyasında gezinirken, web sitelerine erişirken veya e-posta gönderip alırken, aslında farkında olmadan karmaşık bir sürecin işlediğini bilmeliyiz: Domain Name System (DNS). Linux’ta DNS, internetin telefon rehberi gibidir; google.com gibi okunabilir alan adlarını, bilgisayarların anladığı IP adreslerine (örneğin, 172.217.160.142) dönüştürür. Bu sayede, karmaşık IP adreslerini ezberlemek zorunda kalmadan internet kaynaklarına kolayca erişebiliriz.
Linux işletim sistemlerinde DNS yapılandırması, hem son kullanıcılar hem de sistem yöneticileri için hayati öneme sahiptir. Doğru DNS ayarları, hızlı ve güvenilir bir internet bağlantısı sağlamanın yanı sıra, ağ sorunlarını gidermede de kilit rol oynar. Bu rehberde, Linux’ta DNS ‘i nasıl yapılandıracağınızı, farklı yöntemleri ve sık karşılaşılan sorunları nasıl gidereceğinizi adım adım ve kapsamlı bir şekilde ele alacağız.
DNS Neden Önemlidir?
Linux sisteminizde DNS ‘in doğru yapılandırılması birçok açıdan kritik öneme sahiptir:
- İnternet Erişimi: DNS olmadan, alan adlarıyla internet sitelerine erişemezsiniz. Sadece IP adreslerini yazarak gezinebilirsiniz ki bu da pratik değildir.
- Ağ Kaynaklarına Erişim: Şirket içi ağlarda veya özel sunucularda, DNS sayesinde iç ağ kaynaklarına kolayca erişilebilir.
- E-posta ve Diğer Hizmetler: E-posta sunucuları, FTP sunucuları ve diğer ağ tabanlı hizmetler de DNS kayıtlarına güvenir.
- Güvenlik ve Performans: Doğru DNS sunucuları seçimi, hem daha hızlı yanıt süreleri sağlayarak internet deneyiminizi iyileştirebilir hem de zararlı sitelere karşı koruma sunabilir (örneğin, reklam engelleme veya kötü amaçlı yazılım koruması sunan DNS’ler).
Linux’ta DNS Yapılandırma Mekanizmaları
Linux’ta DNS yapılandırması, kullanılan dağıtıma ve sürümüne bağlı olarak farklılık gösterebilir. Modern Linux dağıtımları genellikle iki ana mekanizmayı kullanır:
- NetworkManager: Çoğu masaüstü Linux dağıtımında (Ubuntu, Fedora, Linux Mint vb.) varsayılan olarak gelen bir ağ yönetim aracıdır. Grafiksel arayüz veya
nmclikomut satırı aracı ile ağ bağlantılarını ve dolayısıyla DNS ayarlarını yönetir. - systemd-resolved: systemd init sisteminin bir parçası olarak çalışan, DNS çözümlemesi ve yerel ana bilgisayar adı önbelleklemesi için bir servistir. NetworkManager ile entegre çalışabilir veya tek başına DNS yönetimini üstlenebilir.
/etc/resolv.confdosyasını yönetmek için genellikle bir sembolik bağlantı (symlink) kullanır. - Netplan: Ubuntu’nun bazı sürümlerinde (17.10 ve sonrası) varsayılan ağ yapılandırma aracıdır. Ağ ayarları YAML dosyaları aracılığıyla tanımlanır ve NetworkManager veya systemd-networkd gibi arka uçlar tarafından uygulanır.
- Geleneksel
/etc/resolv.conf: Daha eski veya minimalist dağıtımlarda, DNS sunucuları doğrudan/etc/resolv.confdosyasına yazılabilir. Ancak modern sistemlerde bu dosya genellikle yukarıda bahsedilen servisler tarafından otomatik olarak güncellenir ve manuel değişiklikler kalıcı olmayabilir.
Grafiksel Arayüz (GUI) Üzerinden DNS Yapılandırması
Çoğu kullanıcı için Linux’ta DNS ayarlarını değiştirmek için grafiksel arayüz en kolay yoldur. Adımlar genellikle masaüstü ortamınıza göre biraz farklılık gösterse de temel mantık aynıdır:
- Ayarlar Uygulamasını Açın: Ekranın sağ üst köşesindeki ağ simgesine (Wi-Fi veya Ethernet) tıklayın ve “Ağ Ayarları” (Network Settings) veya “Bağlantı Bilgileri” (Connection Information) seçeneğini seçin. Alternatif olarak, ana menüden “Ayarlar” (Settings) uygulamasını açıp “Ağ” (Network) veya “Wi-Fi” bölümüne gidin.
- Ağ Bağlantınızı Seçin: Yapılandırmak istediğiniz ağ bağlantısını (örneğin, “Kablolu Bağlantı 1” veya bağlı olduğunuz Wi-Fi ağı) seçin.
- Ayarlar Dişlisi/Kalem Simgesi: Seçtiğiniz bağlantının yanında genellikle bir ayarlar dişlisi veya kalem simgesi bulunur. Bu simgeye tıklayarak gelişmiş ayarlara erişin.
- IPv4 veya IPv6 Sekmesi: Açılan pencerede “IPv4” veya “IPv6” sekmesine gidin. DNS ayarları genellikle bu sekmelerde yer alır.
- DNS Sunucularını Ayarlayın:
- Otomatik (DHCP): Çoğu ev ağı için varsayılan ve önerilen seçenektir. “DNS” bölümünde “Otomatik” (Automatic) veya “DHCP ile al” (Get DNS from DHCP) seçeneğini işaretleyin. Bu, yönlendiricinizden otomatik olarak DNS sunucusu almanızı sağlar.
- Manuel (Statik): Belirli DNS sunucularını kullanmak istiyorsanız “DNS” bölümündeki “Otomatik” seçeneğinin işaretini kaldırın. Ardından, DNS sunucularının IP adreslerini virgülle ayırarak girin (örneğin,
8.8.8.8, 1.1.1.1).
- Uygula/Kaydet: Ayarları kaydetmek için “Uygula” (Apply) veya “Kaydet” (Save) butonuna tıklayın. Değişikliklerin etkili olması için ağ bağlantınızı kapatıp tekrar açmanız veya bilgisayarınızı yeniden başlatmanız gerekebilir.
Komut Satırı (CLI) Üzerinden DNS Yapılandırması
Sistem yöneticileri ve daha fazla kontrol isteyen kullanıcılar için komut satırı üzerinden DNS yapılandırması güçlü bir seçenektir.
1. nmcli Komutu (NetworkManager Kullanıyorsanız)
nmcli komutu, NetworkManager tarafından yönetilen ağ bağlantıları için DNS ayarlarını değiştirmek için en uygun yoldur.
- Mevcut Bağlantıları Listeleme: Bash
nmcli connection showBu komut, ağ bağlantılarınızın adlarını gösterir. Örneğin,Kablolu bağlantı 1veyaMyWifiNetwork. - Dinamik DNS (DHCP) Ayarlama (Varsayılan): Ağ bağlantınızın adını öğrenip (örneğin
Kablolu bağlantı 1), DHCP ile otomatik DNS almayı tekrar etkinleştirmek için: Bashnmcli connection modify "Kablolu bağlantı 1" ipv4.dns-method auto nmcli connection up "Kablolu bağlantı 1" - Statik DNS Sunucuları Ayarlama: Belirli DNS sunucularını (örneğin Google DNS) ayarlamak için: Bash
nmcli connection modify "Kablolu bağlantı 1" ipv4.dns "8.8.8.8,1.1.1.1" nmcli connection modify "Kablolu bağlantı 1" ipv4.dns-search "example.com" # İsteğe bağlı, alan adı arama listesi nmcli connection up "Kablolu bağlantı 1"Buradaipv4.dnsözelliği ile birden fazla DNS sunucusunu virgülle ayırarak girebilirsiniz.ipv4.dns-method manualkullanmanıza gerek yok, DNS adreslerini doğrudan belirtincemanualmoduna geçiyor.
2. /etc/resolv.conf Dosyası (Geçici veya Manuel Yönetim)
/etc/resolv.conf dosyası, sistemin DNS sunucularını ve arama alanlarını tanımlar. Ancak modern dağıtımlarda bu dosya genellikle NetworkManager, systemd-resolved veya Netplan gibi servisler tarafından yönetildiği için manuel değişiklikleriniz geçici olabilir ve yeniden başlatmada silinebilir.
Yine de, geçici olarak veya sorun giderme amaçlı bu dosyayı düzenleyebilirsiniz:
sudo nano /etc/resolv.confDosyanın içeriği aşağıdaki gibi olabilir:
# Generated by NetworkManager
search localdomain
nameserver 127.0.0.53 # systemd-resolved'ın yerel önbelleği
nameserver 8.8.8.8
nameserver 1.1.1.1nameserver satırlarına kullanmak istediğiniz DNS sunucularının IP adreslerini ekleyebilirsiniz. En üstteki DNS sunucusu öncelikli olarak kullanılır. search satırı ise, tam alan adı belirtilmediğinde sistemin arama yapacağı alan adlarını tanımlar.
Önemli Not: Eğer 127.0.0.53 gibi bir IP adresi görüyorsanız, bu genellikle systemd-resolved servisinin yerel DNS önbelleğini kullandığını gösterir. Bu durumda, doğrudan /etc/resolv.conf dosyasını düzenlemek yerine, systemd-resolved veya NetworkManager üzerinden DNS ayarlarını yapmanız gerekir.
3. Netplan (Ubuntu ve Bazı Dağıtımlar İçin Kalıcı Yapılandırma)
Eğer Ubuntu’nun yeni sürümlerini kullanıyorsanız ve netplan ile ağınızı yönetiyorsanız, DNS ayarlarınızı kalıcı olarak Netplan YAML dosyaları üzerinden yapabilirsiniz. Netplan yapılandırma dosyaları genellikle /etc/netplan/ dizininde bulunur.
- Örnek Netplan Yapılandırması (Statik DNS): YAML
# /etc/netplan/00-installer-config.yaml (veya benzeri bir dosya) network: version: 2 renderer: networkd # veya NetworkManager ethernets: enp0s3: # Kendi ağ arayüzünüzün adını yazın dhcp4: no addresses: [192.168.1.100/24] # Eğer statik IP kullanıyorsanız routes: - to: default via: 192.168.1.1 nameservers: addresses: [8.8.8.8, 1.1.1.1] # Buraya DNS sunucularınızı yazın search: [example.com, mydomain.local] # İsteğe bağlı arama alanlarıBu dosyayı düzenledikten sonra değişiklikleri uygulamak için: Bashsudo netplan applyEğer bir hata varsa,sudo netplan trykomutunu kullanarak değişiklikleri güvenli bir şekilde test edebilirsiniz.
DNS Sorun Giderme (Troubleshooting)
DNS ile ilgili bir sorun yaşadığınızda, aşağıdaki adımları ve komutları kullanarak sorunu tespit edebilir ve çözebilirsiniz:
- Bağlantıyı Kontrol Edin: İlk olarak, temel ağ bağlantınızın (IP adresi, ağ geçidi) çalışır durumda olduğundan emin olun. Bash
ip a ping 192.168.1.1 # Kendi ağ geçidi IP'nizi kullanın - DNS Çözümlemesini Test Edin (
ping,nslookup,dig):- Bir IP adresine ping atabiliyor ancak bir alan adına ping atamıyorsanız (örn.
ping 8.8.8.8çalışırkenping google.comçalışmıyorsa), sorun büyük olasılıkla DNS ile ilgilidir. nslookup: DNS sunucunuzun alan adlarını çözümleyip çözümlemediğini test etmek için kullanılır. Bashnslookup google.com nslookup google.com 8.8.8.8 # Belirli bir DNS sunucusuyla test etmek içindig:nslookup‘tan daha güçlü ve daha ayrıntılı DNS sorguları yapabilen bir araçtır. Bashdig google.com dig @8.8.8.8 google.com # Belirli bir DNS sunucusunu sorgula
- Bir IP adresine ping atabiliyor ancak bir alan adına ping atamıyorsanız (örn.
/etc/resolv.confDosyasını Kontrol Edin: DNS sunucularının doğru listelenip listelenmediğini kontrol edin. Bashcat /etc/resolv.confEğer burada127.0.0.53gibi bir IP adresi görüyorsanız ve sorun yaşıyorsanız, bu systemd-resolved’ın doğru çalışmadığına işaret edebilir.- NetworkManager veya systemd-resolved Durumunu Kontrol Edin: Bash
systemctl status NetworkManager systemctl status systemd-resolvedServislerin çalışır durumda olduğundan emin olun. Hata mesajlarını kontrol edin. - DNS Önbelleğini Temizle: Bazen yanlış DNS girdileri önbelleğe alınabilir.
- systemd-resolved için: Bash
sudo systemctl restart systemd-resolved sudo resolvectl flush-caches - NetworkManager için: Bash
sudo systemctl restart NetworkManager
- systemd-resolved için: Bash
- Farklı DNS Sunucularını Deneyin: Eğer mevcut DNS sunucunuz sorunluysa, Google DNS (8.8.8.8, 8.8.4.4), Cloudflare DNS (1.1.1.1, 1.0.0.1) veya OpenDNS (208.67.222.222, 208.67.220.220) gibi genel ve güvenilir DNS sunucularını deneyin.
En İyi DNS Sunucuları (Örnekler)
- Google Public DNS:
8.8.8.8ve8.8.4.4 - Cloudflare DNS:
1.1.1.1ve1.0.0.1(Gizlilik odaklı ve hızlı) - OpenDNS:
208.67.222.222ve208.67.220.220(İsteğe bağlı olarak zararlı siteleri filtreleme özelliği) - ISP (İnternet Servis Sağlayıcınızın) DNS’leri: Yönlendiricinizden otomatik olarak aldığınız DNS sunucuları.
Sonuç
Linux’ta DNS yapılandırması, internet bağlantınızın ve ağ kaynaklarına erişiminizin temelini oluşturur. İster grafiksel arayüzleri, ister komut satırı araçlarını kullanın, Linux size DNS ayarlarınızı yönetme konusunda tam kontrol sunar. Bu rehberde edindiğiniz bilgilerle, Linux sisteminizde DNS sorunlarını kolayca çözebilir, daha hızlı ve güvenilir bir internet deneyimi yaşayabilirsiniz. Unutmayın, doğru DNS ayarları, dijital dünyada sorunsuz bir şekilde gezinmenizin anahtarıdır.




