Safari neden / etc / hosts dosyasını görmezden geliyor?


25

Dosyama engellemek ( 127.0.0.1 mydomain.com) için bazı etki alanları /etc/hostsve bazı nedenlerden dolayı Safari onları görmezden geliyor gibi görünüyor.

Denedim:

  • Safari uzantılarını devre dışı bırakmak,
  • önbelleğin temizlenmesi ( sudo dscacheutil -flushcache),
  • Safari ve Mac'i tamamen yeniden başlatmak.

Chrome /etc/hostsdeğişikliklere saygı duyuyor , ancak Safari buna uymuyor. Ekli dosyamın bir örneği /etc/hosts.

Safari 6.0.4'ü Mountain Lion 10.8.3 ile çalıştırıyorum.

Herhangi bir fikir?

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost
127.0.0.1       facebook.com

3
Yanıt yoksa, Safari www.URL’nin başına eklemeye çalışır . Facebook daha sonra tarayıcıyı yönlendirebilir Facebook.com. www.facebook.comDosyanızı eklemeyi deneyin ve çalışıp çalışmadığını kontrol edin.
JoshRagem

Bunun olabileceğini düşündüm. Hem www.facebook.com hem de * .facebook.com adreslerini denedim. Hiçbiri işe yaramadı.
Nicholas Tulach

Metni kod bloğuna / etc / hosts dosyası olarak kaydettiğimde Facebook'ta Safari’yi engelledi. / Etc / host'larınız CR satır sonları kullanıyor mu, yoksa diğer girişleri IPv6 girişlerinin üstünde taşımayı denediniz mi?
Lri

İlginç olan, search.yahoo.com'u DuckDuckGo'ya yönlendirmek için kullandığım çizginin, facebook.com yönlendirmesinin ardından koymama rağmen çalışmasına rağmen, Facebook çizgisinin hiçbir şey yapmamasıdır. Bu konuda tamamen güdük.
Nicholas Tulach

dns önbelleğini temizlediniz mi ve güvenli tarihçeyi ve önbelleği temizlediniz mi?
konqui

Yanıtlar:


13

Aynı sorunun biraz farklı bir sürümüne sahiptim ve benim için neyin işe yaradığını söyleyeceğimi düşündüm.

Web siteleri geliştiriyorum. Bunu yapmak için, yerel ağımda çalışan her sitenin tam bir kopyası var. Yerel olarak çalışmak istediğimde, yerel / etc / hosts dosyama her zaman "example.com" için bir giriş ekledim ve bu, her zaman DNS'yi geçersiz kılarak, web sitesinin yerel kopyasına erişmemi sağladı. Safari ve Firefox dahil olmak üzere herhangi bir tarayıcı. Asıl canlı siteyi etkilemeden çalışabilir, sonra tamamlandığında değişiklikleri yükleyebilirim.

Ancak son zamanlarda, bu teknik hem Safari hem de Firefox için çalışmayı bıraktı, ancak Chrome için değil, bu nedenle bir süredir Chrome'u yerel gelişim için kullanmakla sınırlı kaldım. Google'ı aradım ve önerilen tüm düzeltmeleri denedim - hosts dosyasının sonundaki CR, satır başına yalnızca bir giriş, "about: config", vb. Kullanarak çeşitli Firefox yapılandırma değişiklikleri. Hiçbir şey işe yaramadı.

Sonra bu basit şeyi denedim: Adresin IPV4 sürümünü / etc / hosts dosyasına koymanın yanı sıra, IPV6 sürümünü de koydum.

Önce:

10.0.1.23       example.com

Sonra:

10.0.1.23       example.com
0:0:0:0:0:FFFF:0A00:0117        example.com

IPV6 girişini eklediğim anda hem Firefox hem de Safari doğru (yerel) sunucuyu vurmaya başladı.

IPV4 adreslerini IPV6'ya çevirecek çeşitli web siteleri vardır; sadece "ipv4 to ipv6" için bir google araması yapın.


Yeni hattınızın son karakterini kontrol eder misiniz /etc/hosts? Örneğin ile açın vi.
dan

/ Etc / hosts dosyasının son karakteri "\ n" veya hex 0A'dır.
Fred

1
Bu doğru cevap. Safari'yi önlemek için, hem IPv4 hem de IPv6 girişlerine ihtiyacınız olacaktır . MacOS 10.12'de test edilmiştir.
alt

ipaddressguide.com/ipv4-to-ipv6 - Her ikisi de 2 satır ekler + çok uzun satırları kaldır - ayırın - eserleri!
Artemiy StagnantIce Alexeew

8

Aynı sorunu yaşadım ve ana bilgisayar dosyamda çok uzun çizgiler olması (aynı satırda listelenen aynı IP adresine eşlenmiş birden fazla ana bilgisayar) nedeniyle ortaya çıktı. Bunu birkaç çizgiye bölerek düzelttim.


önceki ile doğru!
Artemiy StagnantIce Alexeew

8

Sistem tercihlerinde Ebeveyn Denetimi kullanmak yerine / etc / hosts dosyasını kullanan siteleri engellemek için OS X El Captain 10.11.4'te oldukça zaman geçirdim. Sonunda sadece böyle çalıştı:

127.0.0.1 www.website.com
127.0.0.1 website.com

Çok fazla değişken denedim, fakat her zaman 0.0.0.0 ( 0.0.0.0 website.com) ile eşleşiyordum . Asla herhangi bir varyasyonda çalışmadı.

Web'deki bazı önerilerden farklı olarak, bunlar işe yaramaz:

  • IPv6 fe80::1%lo0 www.website.comveya benzeri engellemeye gerek yoktu::1 website.com
  • Buna gerek yoktu dscacheutil -flushcache, ama sadece durumunda yap.
  • Hosts dosyasının başına veya sonuna yapıştırmanızın bir önemi yoktur.
  • Tarayıcılar farklı şekilde yanıtlanmış gibi görünüyor: Chrome ve Safari, doğru hostsdosya kaydedildiğinde derhal engellendi , Firefox bir süre göz ardı etmeyi sürdürdü (yeniden başlatma yeterliyse belli değil).
    • New Private WindowTarayıcıyı test etmek için kullanmayı veya yeniden başlatmayı deneyin .
  • Ekleme http://veya https://adresin başında
  • Başka hiçbir komut gerekli değildi.
  • #Ana bilgisayar dosyasında bulunan satırları devre dışı bırakmayın (= başında bir yorum ekleyerek yorum yapın ).

Faydalı kontroller

  • Sistemin yönlendirmenizi tanıyıp tanımadığını kontrol edin dscacheutil -q host -a name website.com- göstermelidir:

    name: website.com
    ip_address: 127.0.0.1
    
  • Sözdizimi olmadığını kontrol hostsdosyası tarafından doğrudur: cat -vet /etc/hosts. Bu görünmez karakterleri gösterir:

    • Satırlar bitmeli $
    • Arasında 127.0.0.1ve website.comyalnızca boşluk olarak veya bir sekme olarak görüntülenmelidir ^I.
  • Örneğin, facebook gibi bazı siteler için birçok adresi engellemeniz gerekebilir .
  • hostsDosyanın yeni bir satırla bitmesi gerektiğini düşünüyorum .

6

Ben de benzer bir sorun yaşadım. Mac bilgisayarımdaki her yazılım, hosts dosyam Safari dışında başka bir dosyaya bağlandığında (diğer adla) / etc / hosts dosya girişimi onurlandırdı. Anasistem dosyanız bir link olduğunda, Safari bunu dikkate almaz.

Benim çözümüm / etc / hosts dosyasını sabit bir bağlantı yapmaktı. Neyse ki güncel tuttuğum ana bilgisayar dosyası aynı dosya sisteminde. Olmazsa, üzgünsün.

Kötü Safari ... kötü.


1
Bunu bulana kadar kariyer değişikliği yapmayı düşünüyordum. Gerçekten akıllı olacağım ve tüm dotfiles (ve diğer yapılandırma dosyaları) bir git deposunda depolamak ve sonra sembolik bağlantılar oluşturmak düşündüm. Saçımdan kalanları bugün birkaç saattir çekiyorum.
localheinz

Teşekkürler, beni saatlerce hayal kırıklığına uğrattınız! İnanılmaz Safari!
DrMeers 19:18

4

Sadece bana (10.12.1 "Sierra") için çalışır şey:

127.0.0.1   example.com
127.0.0.1   www.example.com
fe80::1%lo0 example.com
fe80::1%lo0 www.example.com

2
Bu doğru cevap. Eklemek domain.comve www.domain.comana bilgisayar dosyasında gerekir . Safari www.isteğinizi ekleyebilir ve eşleşmeyecektir domain.com.
Vagner

3

Yosemite'de benim için çalıştı:

  1. Sistem Tercihleri> Ağ> Gelişmiş> Proxy'ler seçeneğine gidin.
  2. Auto Proxy Discovery'yi işaretleyin, Tamam'a basın ve Uygula (başka hiçbir şey işaretlemedim)
  3. Terminalde girin: dscacheutil -flushcache

Bu, Yosemite'deki dnscache'i temizler. Artık Safari ve Chrome, ana makinenize saygı duymalıdır.


Bunu denemek istedim, ancak iPhone'umla bağlanıyorum ve Advanced> Proxies seçeneği kullanılamıyor.
Roger Dueck

2

Son girişten sonra bir veya iki satır başı koymayı deneyin.

...
127.0.0.1       facebook.com

^ Carriage Return

1
ne yazık ki bu yardımcı olmadı.
Nicholas Tulach

En sonuncusu da dahil olmak üzere her satırın sonunda yeni bir satıra sahip olmanız gerekir (satır başı değil ).
ganbustein,

Mac OS 9
kullanmıyorsa

1

Bazı durumlarda, /etc/hostsdosyada hem IPv4 hem de IPv6 için geridöngü adreslerinin eklenmesi gerekir .

IPv4 adresi için zaten bir engelleyici giriş eklediğimizi varsayalım website.com:

127.0.0.1 website.com

Her dscacheutil -q host -a name website.comiki protokol sürümünün adreslerini döndürürse:

name: website.com
ipv6_address: rand:omin:vali:dipv:6addr:ess5

name: website.com
ip_address: 127.0.0.1

o zaman hosts dosyasına başka bir satır eklemeliyiz:

::1 website.com


0

Ben de bu problemi yaşadım ama çözüm gerçekten kolay Diyelim ki ana bilgisayar dosyasında makinenize bir yerel Alias'ı localhost2 adıyla oluşturduğunuzu varsayalım

Ana bilgisayar dosyasındaki bu giriş şöyle görünmelidir: 127.0.0.1 localhost2

Safari url çubuğuna "localhost2" yazdığınızda, açılır menüde varsayılan seçeneğin bu google'da arama olduğunu fark edeceksiniz, "Siteye yerel ev sahibine git2" diyen seçeneği seçmelisiniz.


0

/ Etc / hosts dosyalarının tam olarak bu özelliklere sahip olduğundan emin olun. Dosyayı kendi kullanıcı adımı kullanarak kopyalayıp, değiştiriyor ve değiştiriyordum, safari dışında her program çalışmaya devam ediyordu ...

$ ls -l /etc/hosts
-rw-r--r--  1 root  wheel  1004 Sep 24 16:03 /etc/hosts

0

Bir https adresi example.com için, çalışmadan önce hem example.com hem de www.example.com için hem IPv4 hem de IPv6 adreslerini dahil etmek zorunda kaldım. Bunun gibi:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
127.0.0.1       example.com
::1     example.com
127.0.0.1       www.example.com
::1     www.example.com
255.255.255.255 broadcasthost
::1             localhost

-2

Bu bloga göre http://thecoredump.org/2011/09/editing-the-hosts-file-in-mac-os-x-lion/

Girişi ana bilgisayar dosyasının başına koymak zorundasınız. Çok sıradışı. Bununla ilgili herhangi bir kişisel deneyimim yok.


Onlar yanlış. Sadece sözdizimi önemlidir, konum değil. Ve tüm ek girişler her zaman varsayılanları takip etmelidir.

Muhtemelen, host dosyasını düzenleyen insanların sık karşılaşılan sıkıntılarından kaçınmak için en baştan koymaları gerektiğini söylüyorlar: Son satırın sonuna yeni bir satır eklemeyi unutuyorlar. Bu yeni satır olmadan, son satır dikkate alınmaz. Girişi cepheye eklerseniz, yeni satırı unutmak zordur.
ganbustein,

Neden olduğundan emin değilim, ama bu benim için çalışıyor. Yosemit kullanıyorum.
Vicary
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.