/ Etc / hosts dosyası neden çalışmıyor?


29

Bir süredir bu konuda sorun yaşıyorum ve bildiğim her şeyi denedim, bu yüzden nihayet yardım isteme zamanı geldiğini düşündüm.

Yaptığım herhangi bir düzenleme /etc/hostsişe yaramıyor.

Örnek:

julian@ifrit:~$ cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   ifrit
192.168.1.100   dev.julianfernand.es

Yukarıdaki örnekte, eriştiğimde dev.julianfernand.es(bu mevcut değil),192.168.1.100 .

Eğer ping yaparsam, iyi çalışıyor. Ancak eriştiğimdedev.julianfernand.es Google Chrome veya Firefox’a kullanmıyor.

Şimdi, birkaç kez yeniden başlattıktan sonra işe yarıyor. Ancak, yönetilen bir WordPress barındırma şirketinde çalıştığım için, sunucumda müşterinin web sitesini görmek için dosyamı düzenlemek zorunda olduğum birçok durumla ilgileniyorum.

Bilgisayarımı yeniden başlatmaya devam edemiyorum. Hiç üretken değil. Ağ servisini yeniden başlatmak işe yaramaz, önbelleği temizlemek için de aynı (dahili Chrome DNS önbelleği dahil).

Burada bir fikri olan var mı? Bu ilköğretimOS (Ubuntu 12.04 temel alınarak) ve Ubuntu 13.10 (günlük olarak) ile olur. Henüz başka bir sürümle denemedim.

Not: Bu durumda, PHP-FPM ve MySQL ile bu makinede çalışan bir NGINX sunucum var.

Şimdiden teşekkürler :)


Sorunu bilmek zor. Siteye hostname (dev.julianfernand.es) aracılığıyla erişme işlemi başarısız olursa, ip adresinden (192.168.1.100) erişebilir misiniz?
Panter

@ bodhi.zazen Evet, yapabilirim. Ancak, şirketimiz varsayılan "web sitesine erişmek için IP erişimi" fikrini paylaşma fikrini kullanmadığından, bu çalışmaz.
Julian Fernandes

Uzun vadeli bir çözüm olarak web sitelerine ip üzerinden erişmenizi önermiyordum. Bilgi, güvenlik duvarından sunucuya yönlendirmeye kadar olan diğer sorunları hariç tuttuğu için hata ayıklamaya yardımcı olur.
Panter

IP adresini tarayıcınızın adres çubuğuna yazarsanız ne olur?
Sergiy Kolodyazhnyy

Yanıtlar:


14

DNS önbelleğini temizlemek istiyorsanız Ubuntu'da nscddaemon'u yeniden başlatmanız gerekir .

nscdAşağıdaki komutu kullanarak kurun :

sudo apt-get install nscd

DNS Önbelleğini Ubuntu'da Yıkama Aşağıdaki komutu kullanarak:

sudo service nscd restart

VEYA

sudo service dns-clean start

Referans: http://www.upubuntu.com/2012/05/how-to-flush-clear-dns-cache-under.html


Lütfen Nginx yapılandırmanızı ve hata günlüğü dosyanızı da kontrol edin. Siteye girdiğinizde içeride bir miktar ipucu olmalı.
Arnold

7

Aşağıdaki benim için çalıştı: ekle

addn-hosts=/etc/hosts

içinde

/etc/NetworkManager/dnsmasq.d/hosts.conf

dnsmasq'ı öldür ve

service NetworkManager restart

6

Benim için çözüm /etc/nsswitch.confdosyayı düzenlemek oldu (komutu kullanabilirsiniz sudo vim /etc/nsswitch.conf). Satırı değiştirdim:

hosts:          files mdns4_minimal [NOTFOUND=return] dns

için:

hosts:          dns files mdns4_minimal [NOTFOUND=return]

ve şimdi beklendiği gibi çalışıyor!


1
DNS sunucularından aldığınız sonuçlardan öncelikli filesolmak istiyorsanız, muhtemelen ilk giriş yapmanız /etc/hostsgerekir.
muru

Bu garip ama bir hata değil, çalışmasını sağlamak için tam olarak bu emre sahip olmalıyım.
jmarceli

4

Kabul edilen cevap 12.04 ile 13.04 arasında devre dışı bırakılarak çalışır dnsmasq, ancak benim için 13.10'da çalışmayı durdurdu. 13.10 için aşağıdaki yeni çözümü buldum.

/ Etc / default / dnsmasq dosyanızı ENABLED=1düzenleyin ENABLED=0ve değiştirin ve yeniden başlatın.


2
belirtilen yolda herhangi bir dnsmasq dosyası yok. Ben Linux üzerinde 15.04
Hiren

Artık kabul edilmiş bir cevap yok. Hangi cevaptan bahsediyorsun?
toon81

3

Gönderen: http://blog.calebthorne.com/2012/08/broken-etchosts-in-ubuntu-1204.html

Ubuntu 12.04 masaüstü sürümündeki yeni bir "özellik", dnsmasqyerel DNS için NetworkManager eklentisi olarak kullanmaktır . Dnsmasq, DNS ve DHCP hizmetlerini hızlandırmayı amaçlamaktadır, ancak talihsiz bir yan etkisi vardır: dnsmasqyerel DNS’yi önbelleğe alır ve/etc/hosts . Web sitelerinde çalışırken ana bilgisayar dosyasında sık sık değişiklik yapıyorum, bu yüzden bu "özellik" oldukça can sıkıcıydı.

Çözüm, dnsmasqAğ Yöneticisi yapılandırma dosyasında devre dışı bırakmaktır . /etc/NetworkManager/NetworkManager.confSatırı aç ve yorumla:

dns=dnsmasq

Dosyam NetworkManager.confaşağıdakileri içeriyor:

[main]
plugins=ifupdown,keyfile
# dns=dnsmasq

[ifupdown]
managed=false

Ayrıca bakınız https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/993298


1
Bunu 13.10 ve ilkokulOS'ta denedim, hala bir şey yok. Ama yardımın için teşekkürler! :)
Julian Fernandes

@JulianFernandes Görünüşe göre bu 13.10'da işe yaramıyor. Bu tavsiyeye uydum ve geri 12.04'te işe yaradı, ancak 13.10'a yükselttikten sonra dnsmasq geri döndü ve ondan kurtulamıyorum.
Mark E. Haase,


1

Basit ve Güncel

  1. Oluşturun /etc/NetworkManager/dnsmasq.d/hosts.conf.
  2. address=/whatever/1.2.3.4Bunun gibi çizgiler koyun . Dokümanlara bakın (arayın --address). Joker karakterler mümkündür: address/.whatever./1.2.3.4.
  3. Öldür dnsmasq( böcek ).
  4. Tekrar başlat $ service network-manager restart.

0

Kurulumun benimkine çok benziyor. Ofis sunucum ve geliştirme sunucum olarak Ubuntu'yu çalıştıran bir kutum var. Bu kutuda Nginx, Apache, Tomcat, Rails uygulamalarını ve ihtiyaç duyduğum her şeyi çalıştırıyorum.

Mac'imden sadece bir ana bilgisayar girişi ekleyebilir ve sunucuyu istediğim adla yükleyebilirim, ancak bu bir ElementaryOS istemcisinden işe yaramıyor.

Yukarıdaki düzeltmeleri başarılı bir şekilde yapmadan denedim.

Yaptığım şey, Squid Proxy Server'ı çalıştırmak ve hostnames'i / etc / hosts dosyasına sunucuya eklemek oldu. (Düzenleme, kalamarın yeniden başlatılmasını gerektirir.)

Bundan sonra, tarayıcınızda veya işletim sisteminizin kontrol panelinde uygun proxy ayarlarını yapın.


0

/etc/hostsDosyadaki izinleri kontrol et .

Ana izinler değiştirildi dosyası bir sunucu klonlama sonra benim bulut hizmetinde 644için 600dosya apache (tarafından okunamadı böylece www-data) sanırım. Koştum sudo chmod 644 hostsgelen /etcve bu düzelttim.

Sorun şöyle başladı:

MongoConnectionException Failed to connect to: localhost:27017: Previous connection attempts failed, server blacklisted. 

Localhost'a işaret eden MongoClient'deki sunucu değişkenine kadar izledim. Yerel sunucuya veya ana bilgisayar adına ping yapamadım.


Bazen bu gibi durumlarda 'localhost' u '127.0.0.1' olarak değiştirmeyi
başarabilirim

0

Düzenle /etc/nsswitch.conf, satırın önüne # ekleyerek satırın altına yorum yaz

hosts:          files mdns4_minimal [NOTFOUND=return] dns myhostname

ve Ekle

hosts:          files mdns4_minimal [NOTFOUND=return] dns

Temel olarak, yapılandırma yeniden düzenlenir. Şimdi etki alanı arama işlemi önce dosyaya, /etc/hostssonra da DNS'ye başvurur. Varsayılan konfigürasyonla, diğer uygun servislerden veya dosyalardan önce önce DNS'e danışır.

Çalışıp çalışmadığını hızlı bir şekilde test etmek için kullanabilirsiniz.

sudo python -m SimpleHTTPServer 80

Dizinden dosya sunmak için basit bir HTTP Sunucusu oluşturmak ve ardından /etc/hostsdosyadaki satırın altında yorum yapmak

127.0.0.1      localhost
127.0.1.1      01hw730983

ve Ekle

127.0.0.1       content

daha sonra bir tarayıcıya gidin ve content/Dizin yapısının çalışıp çalışmadığını görebiliyorsanız yazın.

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.