"sudo: unable to resolve host" uyarısı nedir, nasıl düzeltilir?

Linux Sunucu (SSH) 76 görüntülenme Markdown

Hangi sudo komutunu çalıştırırsanız çalıştırın başında şu satır çıkıyor:

sudo: unable to resolve host sunucum: Name or service not known

Komut çoğunlukla yine de çalışır; yani bu bir hata değil, can sıkıcı bir uyarıdır. Anlamı şudur: sunucunun kendi adı (hostname) yerel olarak bir IP adresine çözülemiyor. Çözümleme için sunucu önce /etc/hosts dosyasına bakar. Orada kendi adı yoksa DNS'e gider, DNS de bilmediği için hata verir.

Neden olur?

  • Sunucu adını panelden ya da hostnamectl set-hostname ile değiştirdiniz ama /etc/hosts dosyasını güncellemediniz. Bu en sık sebeptir: sunucu adı değiştirme.
  • Sunucu şablondan kopyalanıp yeni ad aldı, ama dosyada eski ad kaldı.
  • DNS kullanılamıyor (bu durumda ayrıca name resolution hatası da görürsünüz).

Düzeltmek

  1. Sunucunun mevcut adını öğrenin:
    hostname
  2. /etc/hosts dosyasını açın:
    sudo nano /etc/hosts
    (Uyarı çıkması bu komutu engellemez.)
  3. Dosyada 127.0.0.1 localhost satırının hemen altına, yukarıdaki adı yazarak şu satırı ekleyin ya da var olan 127.0.1.1 satırını düzeltin:
    127.0.1.1 sunucum
  4. Kaydedin (nano'da Ctrl+O, Enter, Ctrl+X) ve test edin:
    sudo true
    Uyarı kaybolduysa iş bitmiştir.

Sunucuda alan adı biçiminde bir ad kullanıyorsanız (sunucu.ornek.com) hem tam adı hem kısa adı yazabilirsiniz: 127.0.1.1 sunucu.ornek.com sunucu.

Kalıcı mı?

Bazı bulut şablonlarında cloud-init, /etc/hosts dosyasını yeniden yazabilir (manage_etc_hosts ayarı). Düzeltme açılışta kayboluyorsa /etc/cloud/cloud.cfg içinde bunu kontrol edin ya da sunucu adını cloud-init yerine hostnamectl ile kalıcı yapın. Bizim şablonlarda sunucu adı hizmet sayfasındaki Sunucu Adı Değiştir aracından da değişir; değişiklikten sonra bir yeniden başlatma gerekebilir ve /etc/hosts dosyasını yine kontrol etmeniz iyi olur.

Hangi dosyalar etkilenir?

Sunucu adı iki yerde tutulur: /etc/hostname sunucunun adını, /etc/hosts ise bu adın hangi IP adresine karşılık geldiğini söyler. İkisi uyuşmazsa uyarı çıkar. Adı hostnamectl ile değiştirdiğinizde ilk dosya güncellenir ama ikincisi güncellenmez; bu yüzden her ad değişikliğinden sonra /etc/hosts dosyasına bakmak iyi alışkanlıktır.

Uyarıyı görmezden gelebilir miyim?

Çalışmayı engellemiyorsa evet, ama düzeltmeniz tavsiye edilir. Çünkü adı çözülemeyen sunucuda bazı servisler (mail sunucusu, bazı veritabanları, sudo kendisi) yavaş açılır ya da yanlış davranır. Linux sunucuda yapılacak diğer ilk ayarlar için ilk yapılacaklar makalesine bakın.

Sık sorulanlar

Windows'ta da böyle bir uyarı var mı?

Hayır. Bu Linux'a özgü bir davranıştır ve /etc/hosts dosyasıyla ilgilidir.

Sunucu adını değiştirdim, her komut yavaşladı.

Adı çözemeyen sunucuda sudo birkaç saniye bekleyebilir. /etc/hosts düzeltmesi bunu da giderir.

127.0.1.1 yerine 127.0.0.1 yazabilir miyim?

Teknik olarak çalışır. Debian ve Ubuntu gelenekleri sunucu adı için 127.0.1.1 kullanmaktır; ikisi de kabul edilir.

İlgili makaleler

Sorununuz çözülmediyse destek talebi açın. Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.