Ubuntu, varsayılan olarak DNS adreslerini ağa bağlandığında modemden veya DHCP sunucusundan otomatik olarak alır. DNS sunucusunu değiştirerek daha hızlı yanıt, zararlı sitelere karşı koruma ya da şifreli DNS gibi avantajlar elde edebilirsiniz.
Bu yazıda Ubuntu’da DNS değiştirmenin dört yolunu anlatıyoruz: masaüstü ayarları, nmcli komutu, Netplan (sunucular için) ve systemd-resolved (sistem geneli için). Adımlar Ubuntu 20.04, 22.04, 24.04 ve sonraki sürümler için geçerlidir.
Ubuntu’da DNS nasıl yönetilir?
Güncel Ubuntu sürümlerinde DNS ayarlarından systemd-resolved hizmeti sorumludur. Bu hizmet, bilgisayarınızda 127.0.0.53 adresinde çalışan küçük bir DNS aracısıdır. Uygulamalar sorgularını bu adrese gönderir, systemd-resolved da bu sorguları sizin belirlediğiniz DNS sunucularına iletir.
Bu yüzden /etc/resolv.conf dosyasında genellikle nameserver 127.0.0.53 satırını görürsünüz. Bu dosyayı doğrudan düzenlemeyin. Dosya sistem tarafından otomatik oluşturulur ve yaptığınız değişiklikler yeniden başlatmada ya da ağ bağlantısı yenilendiğinde silinir. DNS’i kalıcı olarak değiştirmek için aşağıdaki yöntemlerden birini kullanın.
Önerilen DNS adresleri
| DNS hizmeti | Birinci sunucu | İkinci sunucu | Öne çıkan özelliği |
|---|---|---|---|
| Cloudflare | 1.1.1.1 | 1.0.0.1 | Hız ve gizlilik odaklı |
| Google Public DNS | 8.8.8.8 | 8.8.4.4 | Hız ve kararlılık |
| Quad9 | 9.9.9.9 | 149.112.112.112 | Zararlı siteleri engeller |
| OpenDNS | 208.67.222.222 | 208.67.220.220 | Köklü ve kararlı hizmet |
IPv6 adresleri ve şifreli DNS seçenekleri için DNS Adresleri sayfamıza göz atabilirsiniz.
Yöntem 1: Masaüstü ayarlarından DNS değiştirme
Ubuntu masaüstü (GNOME) kullanıyorsanız en kolay yöntem budur.
- Sağ üstteki sistem menüsünü açın ve Ayarlar‘a tıklayın.
- Kablolu bağlantı için Ağ, kablosuz bağlantı için Wi-Fi bölümüne girin.
- Bağlı olduğunuz bağlantının yanındaki dişli simgesine tıklayın.
- IPv4 sekmesine geçin.
- DNS bölümündeki Otomatik anahtarını kapatın.
- DNS adreslerini aralarına virgül koyarak yazın. Örneğin:
1.1.1.1, 1.0.0.1 - Uygula düğmesine tıklayın.
- Değişikliğin etkili olması için bağlantıyı kapatıp yeniden açın.
IPv6 kullanıyorsanız aynı işlemi IPv6 sekmesinde de yapabilirsiniz.
Yöntem 2: nmcli ile Terminal’den DNS değiştirme
NetworkManager kullanan sistemlerde (Ubuntu masaüstü sürümleri) DNS’i Terminal’den de değiştirebilirsiniz.
- Önce bağlantılarınızın adını öğrenin:
nmcli connection show
- DNS adreslerini ayarlayın ve otomatik DNS’i devre dışı bırakın. Aşağıdaki komutta “BAĞLANTI_ADI” yerine bir önceki adımda gördüğünüz adı yazın:
sudo nmcli connection modify "BAĞLANTI_ADI" ipv4.dns "1.1.1.1 1.0.0.1" ipv4.ignore-auto-dns yes
- Bağlantıyı yeniden başlatın:
sudo nmcli connection up "BAĞLANTI_ADI"
Ayarı eski hâline döndürmek için:
sudo nmcli connection modify "BAĞLANTI_ADI" ipv4.dns "" ipv4.ignore-auto-dns no
Yöntem 3: Netplan ile DNS değiştirme (Ubuntu Server)
Ubuntu Server sürümlerinde ağ ayarları Netplan ile yönetilir. Ayar dosyaları /etc/netplan/ klasöründe bulunur.
- Ağ arayüzünüzün adını öğrenin (örneğin
eth0,ens33veyaenp0s3):
ip a
- Netplan klasöründeki yapılandırma dosyasını açın. Dosya adı sistemden sisteme değişir:
sudo nano /etc/netplan/01-netcfg.yaml
- Dosyayı aşağıdaki örneğe göre düzenleyin.
eth0yerine kendi arayüz adınızı yazın:
network:
version: 2
ethernets:
eth0:
dhcp4: true
dhcp4-overrides:
use-dns: false
nameservers:
addresses: [1.1.1.1, 1.0.0.1]
Buradaki use-dns: false satırı, DHCP sunucusundan gelen DNS adreslerinin kullanılmamasını sağlar. Bu satır olmazsa sistem, sizin adreslerinizle birlikte modemin DNS adreslerini de kullanmaya devam edebilir.
- Ayarları önce test edin:
sudo netplan try
Bağlantınız sorunsuz çalışıyorsa Enter’a basarak ayarı onaylayın. 120 saniye içinde onay vermezseniz ayar otomatik olarak eski hâline döner. Bu özellik, uzaktan bağlandığınız bir sunucuda bağlantınızı kaybetmenizi önler.
- Ayarı kalıcı olarak uygulamak için:
sudo netplan apply
YAML dosyalarında girinti önemlidir. Sekme (Tab) yerine boşluk kullanın ve satır hizalamalarını örnekteki gibi koruyun.
Yöntem 4: systemd-resolved ile sistem geneli DNS
Tüm bağlantılarda geçerli olacak bir DNS ayarı yapmak veya şifreli DNS kullanmak isterseniz systemd-resolved’ın ana yapılandırma dosyasını düzenleyebilirsiniz.
- Dosyayı açın:
sudo nano /etc/systemd/resolved.conf
[Resolve]bölümündeki satırların başındaki#işaretini kaldırıp şu şekilde düzenleyin:
[Resolve]
DNS=1.1.1.1 1.0.0.1
FallbackDNS=8.8.8.8 8.8.4.4
DNSOverTLS=yes
DNSOverTLS=yes satırı, DNS sorgularınızın şifrelenmesini sağlar. Bu ayar, şifreli DNS’i destekleyen sağlayıcılarla (Cloudflare, Google, Quad9 gibi) çalışır. Şifreli DNS kullanmak istemiyorsanız bu satırı eklemeyin.
- Hizmeti yeniden başlatın:
sudo systemctl restart systemd-resolved
Bağlantıya özel ayarlar (Yöntem 1, 2 ve 3) bu dosyadaki genel ayardan önce gelir. Genel ayarın her durumda geçerli olmasını istiyorsanız bağlantı ayarlarında otomatik DNS’i açık bırakıp DHCP’den gelen DNS’i devre dışı bırakmanız gerekir.
DNS değişikliğini kontrol etme
Hangi DNS sunucularının kullanıldığını görmek için:
resolvectl status
Çıktıdaki DNS Servers satırında yeni adresleriniz görünüyorsa ayar etkin demektir. Bir alan adının nasıl çözüldüğünü test etmek için:
resolvectl query ornek.com
Alan adı kayıtlarını görsel olarak incelemek için ip-numaram.net anasayfasındaki DNS sorgulama aracını da kullanabilirsiniz.
DNS önbelleğini temizleme
DNS’i değiştirdikten sonra eski kayıtlar bir süre önbellekte kalabilir. Önbelleği temizlemek için:
sudo resolvectl flush-caches
Diğer işletim sistemleri ve tarayıcılar için adımları DNS Önbelleği Temizleme yazımızda bulabilirsiniz.
Sık karşılaşılan sorunlar
resolv.conf dosyasını değiştirdim ama ayar silindi.
Güncel Ubuntu sürümlerinde bu dosya otomatik oluşturulur. Yukarıdaki yöntemlerden birini kullanın.
DNS’i değiştirdim ama resolvectl status hâlâ eski adresi gösteriyor.
Bağlantıyı yeniden başlatmayı unutmuş olabilirsiniz. Masaüstünde bağlantıyı kapatıp açın, nmcli kullandıysanız nmcli connection up komutunu çalıştırın. Netplan’da ise use-dns: false satırının eklendiğinden emin olun.
VPN açıkken DNS ayarım çalışmıyor.
VPN bağlantıları genellikle kendi DNS sunucularını kullanır ve sizin ayarınızın önüne geçer. Bu normal bir davranıştır.
Sıkça sorulan sorular
Ubuntu’da DNS’i eski hâline nasıl getiririm?
Masaüstü ayarlarında DNS bölümündeki Otomatik anahtarını tekrar açın. Netplan kullandıysanız eklediğiniz nameservers ve dhcp4-overrides satırlarını silip sudo netplan apply komutunu çalıştırın.
Bu adımlar diğer Linux dağıtımlarında çalışır mı?
nmcli ve systemd-resolved yöntemleri, Debian, Fedora ve Linux Mint gibi bu araçları kullanan dağıtımların çoğunda da çalışır. Netplan ise çoğunlukla Ubuntu’ya özgüdür.
Hangi yöntemi kullanmalıyım?
Masaüstü kullanıyorsanız Yöntem 1 en kolayıdır. Sunucu yönetiyorsanız Netplan (Yöntem 3), şifreli DNS istiyorsanız systemd-resolved (Yöntem 4) uygundur.
Diğer cihazlar için adımları DNS Değiştirme rehberimizde bulabilirsiniz.