“Sudo echo nameserver 8.8.8.8> /etc/resolv.conf” ne yapar?


13

Birisi bana ne yaptığını söyleyebilir sudo echo nameserver 8.8.8.8 > /etc/resolv.confmi?

Eskiden 15 saniye ila 3 dakika arasında internet bağlantısının rastgele düşmesi vardı, ancak bu komutu kullandıktan sonra internet bağlantısı bir cazibe gibi çalışıyor. Bu sihirli komut satırının ne yaptığını merak ediyorum.


3
Bunun gerçekten işe yaradığına şaşırdım - sudo, burada yeniden yönlendirme için değil, sadece yankı için geçerli olmalı ve kök olmayan bir kullanıcının /etc/resolv.conf'a erişimi olmaması gerekir
Max

@Max Kesinlikle haklısın. O kısmı kaçırdım - cevabımı güncelledim.
gertvdijk

Yanıtlar:


27

Google Genel DNS hizmeti tarafından makinenizde kullanılan ad sunucusunun (DNS) yerini alır . Bu komutu çalıştırmak size yardımcı oluyorsa, muhtemelen ağınız tarafından sağlanan varsayılan ayarlarda (DHCP) DNS sorunları yaşıyorsunuz. Sorunun temel nedenini çözmek daha iyi olsa da, bu sorunuza genel bir cevaptır.


Komutun açıklaması

sudo echo nameserver 8.8.8.8 > /etc/resolv.conf
  • sudo bu durumda root olma ayrıcalıklarını yükseltir.
  • echosadece standart çıktıdan sonra gelen bağımsız değişkenleri çıktılar (bu durumda çıktı verir nameserver 8.8.8.8)
  • > standart çıktıyı normal bir Unix kabuğunda bir dosyaya (üzerine yazar) yönlendirir.
  • /etc/resolv.conf çıktının yazıldığı dosyadır.
  • Bir satırın nameserver 8.8.8.8bulunması /etc/resolv.conf, 8.8.8.8etki alanı adlarını IP adreslerine çözümlemek için IP adresine sahip olan ad sunucusunu kullanarak sistemi etkinleştirir . (gerçekte olanların çok kısa versiyonu)
  • 8.8.8.8Google tarafından herkese açık DNS hizmetlerinin nerede dinlendiği konusunda yayınlanan adreslerden biridir .

sudo hata

Bu açıklama makul gibi görünse de, bu işe yaramaz, bir hata nedeniyle şunları elde edersiniz:

bash: /etc/resolv.conf: Permission denied

Neden? Çıktı yeniden yönlendirmesi kabuğunuz tarafından işlenir (burada: Bash) ve kullanılan komut için dikkate alınmaz sudo. Matematikte çarpmanın toplamaya göre önceliğine benzer. Yani, bu sadece echoyüksek ayrıcalıklara sahip, ama kabuğunuz yok! Bunu çözmek için, bu komutu şu şekilde çalıştırmalısınız:

sudo sh -c "echo nameserver 8.8.8.8 > /etc/resolv.conf"

veya bir boru kullanarak ve teebir dosyaya çıktı vermek için:

echo nameserver 8.8.8.8 | sudo tee /etc/resolv.conf  #prints to screen as well

Ubuntu ve Ağ Yöneticisi

Ubuntu'da, Network Manager /etc/resolv.confdosyayı "yönettiği" için bu sadece geçici bir değişikliktir . Yerel değişikliklerin üzerine yazılacaktır. Bu yüzden, bunu Ağ Yöneticisi'nde kalıcı olacak şekilde yapılandırmalısınız.


Ağ Yöneticisi'ni kullanarak yapılandırma

Bilgisayarınızı Ağ Yöneticisi'ni kullanarak düzgün bir şekilde yapılandırmanızı tavsiye ederim. Burada ağınızda DHCP kullandığınızı varsayıyorum (en yaygın olanı). Ardından, kullandığınız komutla aynı işlemi gerçekleştirmek için bunu yapın:

  1. Bağlantıları düzenle'yi açın :

    resim açıklamasını buraya girin

  2. Kullandığınız bağlantı profilini düzenleyin.

    resim açıklamasını buraya girin

  3. On IPv4 Ayarları sekmesine:

    • Yöntem: Yalnızca otomatik (DHCP) adresler

      Bu ayar, ana makinenizin IP adresi yapılandırması için düzenli bir DHCP isteği yapmasını sağlar, ancak önerilen DNS sunucuları gibi zorunlu olmayan diğer seçenekleri göz ardı eder.

    • DNS Sunucuları: 8.8.8.8
    • Hit Kaydet

    resim açıklamasını buraya girin

Bitti.


Önemli notlar

Yerel veya şirket ağında yerel DNS sunucusu, yerel ana bilgisayarlar için kullanılabilir. Doğrudan Google'ın sunucularından sizin için adları çözmesini isteyerek bu işlevi kaybedersiniz. Örneğin, yerel DNS sunucusu "yazıcı" nın ne olduğunu bilirse, yazıcınızı bu adla kullanarak kaybedersiniz.

Lütfen bunun yerine yerel DNS sunucunuzu düzeltin. ISS'nizin bozuk bir DNS sunucusuna basit bir iletici ise ve bunu değiştiremiyorsanız (örneğin ISS tarafından yönetilen hepsi bir arada yönlendirici), bu 8.8.8.8çözüm tek seçeneğiniz olabilir.


1
Bir başka önemli not: google muhtemelen DNS'de kimin aradığını toplamaktadır, bu yüzden bundan memnun olup olmadığınızı düşünün. Kullanabileceğiniz çok sayıda başka genel DNS sunucusu vardır ve bunlar genellikle güvenilirdir. OP, yerel bir sunucu olan veya olmayan bir kötü DNS sunucusu kullanıyor gibi görünüyor. (Ben dns ile oldukça kötü bir iş yapmak emtia ADSL yönlendiriciler vardı).
mc0e
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.