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

https://kervanhosting.com/bilgi-bankasi/makale/sudo-unable-to-resolve-host-hatasi-ve-cozumu

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](https://kervanhosting.com/bilgi-bankasi/makale/sunucumun-adini-hostname-nasil-degistiririm).
- Sunucu şablondan kopyalanıp yeni ad aldı, ama dosyada eski ad kaldı.
- DNS kullanılamıyor (bu durumda ayrıca [name resolution hatası](https://kervanhosting.com/bilgi-bankasi/makale/linux-temporary-failure-in-name-resolution-dns-hatasi) 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](https://kervanhosting.com/bilgi-bankasi/makale/yeni-linux-sunucuda-ilk-yapilmasi-gerekenler) 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**

- [Sunucumun adını (hostname) nasıl değiştiririm?](https://kervanhosting.com/bilgi-bankasi/makale/sunucumun-adini-hostname-nasil-degistiririm)
- [Linux'ta "Temporary failure in name resolution" hatası](https://kervanhosting.com/bilgi-bankasi/makale/linux-temporary-failure-in-name-resolution-dns-hatasi)
- [Yeni Linux sunucuda ilk yapılması gerekenler](https://kervanhosting.com/bilgi-bankasi/makale/yeni-linux-sunucuda-ilk-yapilmasi-gerekenler)

*Sorununuz çözülmediyse [destek talebi açın](https://kervanhosting.com/destek-taleplerim). Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.*
