DNS Ayarları

Ubuntu DNS Değiştirme

5 dk okuma

Ubuntu DNS Değiştirme: Masaüstü ve Sunucuda DNS Ayarları

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.

  1. Sağ üstteki sistem menüsünü açın ve Ayarlar‘a tıklayın.
  2. Kablolu bağlantı için Ağ, kablosuz bağlantı için Wi-Fi bölümüne girin.
  3. Bağlı olduğunuz bağlantının yanındaki dişli simgesine tıklayın.
  4. IPv4 sekmesine geçin.
  5. DNS bölümündeki Otomatik anahtarını kapatın.
  6. DNS adreslerini aralarına virgül koyarak yazın. Örneğin: 1.1.1.1, 1.0.0.1
  7. Uygula düğmesine tıklayın.
  8. 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.

  1. Önce bağlantılarınızın adını öğrenin:

nmcli connection show

  1. 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

  1. 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.

  1. Ağ arayüzünüzün adını öğrenin (örneğin eth0, ens33 veya enp0s3):

ip a

  1. 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

  1. Dosyayı aşağıdaki örneğe göre düzenleyin. eth0 yerine 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.

  1. 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.

  1. 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.

  1. Dosyayı açın:

sudo nano /etc/systemd/resolved.conf

  1. [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.

  1. 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.