File OS X 10.10.1 / etc / hosts & / private / etc / hosts diabaikan dan tidak diselesaikan


40

Seperti judulnya, jalankan os x 10.10.1. jika saya memiliki entri di file hosts saya dan melakukan digatau nslookupmasih menunjukkan IP yang berbeda dari apa yang ada di file hosts saya bahkan setelah mencoba mem-flush berbagai cache.

Saya sudah mencoba yang berikut ..

  1. siram mdns dan udns cache dengan menjalankan:
    1. sudo discoveryutil mdnsflushcache;
    2. sudo discoveryutil udnsflushcaches;
  2. cache flush menggunakan dscacheutil -flushcache
  3. muat ulang discoveryd.plistfile
    1. sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
    2. sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist

File host saya terlihat seperti ini ..

% cat /private/etc/hosts
##
# 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
166.78.60.102   admin.devsite1.com

3
Tampaknya Yosemite tidak menggunakan host dengan cara yang sama seperti sebelumnya; itu tidak menghapus cache dengan cara yang sama, & mDNS telah mengambil kursi belakang - Ini memiliki sejumlah obrolan tentang subjek - forums.macrumors.com/showthread.php?t=1741422 Edit ahh ... Saya kira Anda sudah sampai sejauh azchipka.thechipkahouse.com/...
Tetsujin

terima kasih, ya saya sudah membaca itu .. jika ini adalah bagaimana os x akan menjadi ..
payahnya

1
Saya senang saya tidak harus bergantung pada host di Mac, tbh; Saya cenderung selalu bermain di Win ketika saya perlu melakukan itu - meskipun itu bukan satu-satunya hal yang menjauhkan saya dari Yosemite sekarang :(
Tetsujin

Ya rmbp saya adalah mesin dev utama yang saya gunakan untuk pengembangan web / sysadmin sayangnya dan saya perlu mencari tahu ini kalau tidak saya akan kembali ke mavericks.
gorelatif

Orang lain mungkin hanya ingin menonaktifkan ipv6 di workstation mereka, saya menemukan ini yang menjelaskan kunci: technipages.com/how-to-disable-ipv6-in-macos-sierra - Namun, bahkan setelah menonaktifkan ipv6 pada nic saya, masalahnya tetap ada .
James T Snell

Jawaban:


61

/ private / etc / hosts tampaknya berfungsi normal untuk saya di Yosemite (versi 10.10.1). Tidak perlu mem-flush cache atau mereset discoveryd(resolver DNS di Yosemite); sudo fs_usage | grep private/etc/hostsmenunjukkan discoverydmembaca file segera setelah saya menyimpan perubahan itu.

[Pembaruan: discoverydhanya digunakan dalam OS X versi 10.10.0 - 10.10.3. Dalam versi sebelumnya dan yang lebih baru, mDNSRespondermenyediakan fungsi yang sama ... dan juga segera melihat perubahan di / etc / hosts.]

Namun, dig, nslookup, dan hosttidak akan melihat entri di dalamnya karena mereka memotong resolver sistem dan melakukan pencarian DNS baku. Mereka selalu melakukan ini, jadi ini bukan hal baru di Yosemite. Cara "resmi" untuk melakukan pencarian melalui pemecah masalah sistem di OS X adalah dengan menggunakan dscacheutil:

dscacheutil -q host -a name www.example.com

... tapi karena itu verbose yang menyakitkan, saya cenderung hanya menggunakan ping(dan kemudian melihat baris pertama, di mana ia mencantumkan IP apa yang di-ping). Mulai dari 10.9, Anda juga dapat menggunakan tab Lookup Utilitas Jaringan (sebelum digunakan dig, dan karena itu mem-by-by-by-kan kebijakan pencarian sistem).

BTW, harap tidak memperhatikan utas macrumors yang ditautkan Tetsujin; penuh dengan orang-orang yang tidak tahu apa yang mereka lakukan dan salah mengerti hasil dari kesalahan mereka sendiri.


1
Terima kasih Gordon, ya aku sadar setelah saya diposting ini bahwa dig, nslookup, dan hosttidak menggunakan resolusi dns lokal. Itu dikatakan /etc/hostsbekerja seperti yang diharapkan ..
gorelative

Jika saya memperbarui /etc/hostsfile saya atau file saya /private/etc/hosts, maka itu tidak mencerminkan sama sekali dengan dscacheutil -q host -a name www.example.comatau perintah lain ..
Trip

3
@ Trip memastikan entri yang Anda tambahkan diformat dengan benar: alamat IP diikuti oleh spasi atau tab, diikuti dengan nama, lalu umpan baris di akhir baris. Coba cetak file host dengan cat -vet /etc/hostsagar karakter yang biasanya tidak terlihat terlihat. Setiap baris akan terlihat seperti "127.0.0.1 ^ Inetsecuritybureau.com $" ("^ I" adalah sebuah tab, dan "$" adalah umpan baris) atau "127.0.0.1 netsecuritybureau.com $". Jika Anda melihat "^ M" (carriage return) tepat sebelum "$", Anda memiliki teks berformat DOS / Windows dan Anda harus menghapus carriage return.
Gordon Davisson

Ah wow terima kasih banyak atas bantuannya. Saya mengikuti petunjuk Anda untuk memastikan itu tab atau ruang. Baris saya berbunyi persis:, M127.0.0.1^Iyoutube.com^M^Msaya kemudian tampil dscacheutil -flushcache; sudo killall -HUP mDNSResponderdan ketika menavigasi ke youtube.com masih menampilkan youtube dan bukan localhost.
Perjalanan

@Trip Ada sejumlah cara untuk membersihkan karakter yang tidak terlihat seperti yang ada di baris perintah, tapi saya akan merekomendasikan editor GUI TextWrangler - gunakan menu View> Text Display> Show Invisibles untuk melihat (dan mengedit) hal-hal seperti itu carriage return. Selain itu, gratis, dan memiliki opsi untuk menampilkan / membuka file dan folder yang tidak terlihat (seperti / dll), dan menggunakan hak admin untuk mengedit file sistem.
Gordon Davisson

17

Saya telah menemukan kerutan lain dengan masalah ini.

Untuk memperbaiki masalah yang saya alami, saya harus MENAMBAH entri file host gaya IPv6.

Tampaknya Safari akan mengabaikan entri IPv4 JIKA Anda memiliki pengaturan konfigurasi jaringan IPv6.

Anda harus menambahkan entri duplikat yang menyelesaikan ke alamat localhost IPv6 di / etc / hosts.

Entri IPv4 127.68.56.101 facebook.com

misalnya entri IPv6 fe80::1%lo0 facebook.com

dll.


1
Perhatikan bahwa saya berhasil membuat yang ini berfungsi menggunakan alamat IP terpendek: 0.0.0.0 dan :: 1
Ben Morrow

terima kasih, bekerja untuk saya juga. telah menggaruk kepala saya setelah mengembalikan konfigurasi vhosts / apache saya setelah peningkatan. dihargai.
Gavin

Yap ini memperbaikinya untuk saya juga.
advert2013

1

File host saya terus diabaikan setelah saya edit dalam edit teks. Saya mencoba beberapa cara untuk memperbaiki akhir baris, menambahkan entri IPv6 ke entri IPv4 yang ada dengan tidak berhasil mengikuti jawaban JB Smiths di atas . Saya menduga jawabannya akan bekerja jika perusahaan saya mendukung IPv6 yang saya temukan setelah upaya saya.

Satu-satunya solusi yang bekerja untuk saya adalah menggunakan plugin GUI gratis ini untuk mengedit file host.

https://github.com/specialunderwear/Hosts.prefpane/blob/master/README.mdown


1

Saya menemukan artikel ini karena Yosemite 10.10.5 tidak mengambil perubahan file host saya, dan tidak ada yang bisa saya lakukan adalah memperbaikinya. (Saya reboot, mencoba pembilasan cache, mengikuti setiap saran yang bisa saya temukan di internet dll).

Jawabannya sangat sederhana, sebenarnya memalukan, tetapi saya pikir saya akan membagikannya. Saya menggunakan textedit untuk mengedit file host, dan butuh kebebasan menyimpan file tersebut sebagai hosts.txt. Biasanya saya akan melihat sesuatu seperti ini, tetapi saya menggunakan instalasi baru Yosemite dan belum mengaktifkan "tampilkan semua ekstensi file" sehingga tidak tampak seperti nama file telah berubah ketika saya melihatnya di desktop saya.

Jadi itu agak jelas, dan kebanyakan orang yang membaca posting ini mungkin sudah melakukan ini, tetapi pastikan untuk memeriksa apakah file host Anda benar-benar ada dan belum diganti oleh hosts.txt .

Untuk mengaktifkan menampilkan ekstensi nama file, buka Pencari> Preferensi> Tampilkan semua ekstensi nama file

Untuk menghentikan TextEdit dari menambahkan ekstensi .txt ke file, buka file di Text edit dan pilih File> Save As (Jika Anda tidak melihat item menu Save As , tahan tombol pilihan setelah Anda mengklik File , dan Save As seharusnya muncul di menu). Cari opsi. Jika tidak ada ekstensi yang disediakan, gunakan ".txt" dan batalkan pilihannya.


0

Saya percaya Apple akan mengenali ini sebagai bug (saya kirimkan satu hari ini). Saya memang memperhatikan bahwa entri baru /etc/hostsdiambil tetapi, perubahan pada entri yang ada diabaikan. Jadi .... mengubah nama host entri (mis. Web1 ke web1a) memberikan solusi bagi saya.

Entri LAMA / etc / hosts: 54.173.164.18 web1

Entri BARU / etc / hosts: 54.174.161.12 web1a


sudo dscacheutil -flushcache - akan mem-flush cache layanan direktori.
Kevin Buchs

0

Dalam kasus saya, saya akan mengatur .ssh / config

#Host *.ourdemo.ca
  User jumpy
  ProxyCommand ssh ourjumpbox.ca -W %h:%p

Maukah Anda menjelaskan apa yang dilakukan file konfigurasi dan bagaimana hal ini terkait dengan pertanyaan?
klanomath

1
Pertanyaannya adalah mengapa entri dalam file lokal / etc / hosts diabaikan. Dalam kasus saya, itu diabaikan karena saya telah menginstruksikan untuk mengarahkan semua lalu lintas ke satu set mesin (* .ourdemo.ca) melalui kotak proxy (ourjumpbox.ca). SSH patuh proksi koneksi, sehingga akhirnya menjadi file proxy / etc / hosts yang digunakan untuk menyelesaikan alamat daripada file lokal / etc / hosts saya.
Martin Cleaver

0

Saya memiliki masalah yang sangat mirip di mana saya menerima melalui surat dua baris untuk ditambahkan ke email saya /etc/hosts

Domain mengandung -sejenismy-domain.com

Masalahnya ternyata adalah klien email pengirim - tidak peduli untuk mengatakan, MS Outlook - yang mengubah ascii -dalam -karakter panjang yang Microsoft sangat suka menggunakan koreksi otomatis tertanam untuk menggantikan -dengan mereka -.

File host memang terlihat sempurna dan sulit untuk menemukan masalah ini. Ketika saya menghapus baris dan menulisnya kembali secara manual, mereka mulai berfungsi.

Sangat sulit untuk memahami hal ini, sehingga saya masuk ke dalam mengapa klien MacOS harus mengabaikan file host dan langsung beralih ke resolusi nama.


0

Baru saja mengalami masalah ini. Itu disebabkan oleh membuat copy / paste dari hipchat alih-alih menulis alamat.

Proses penyalinan menambahkan beberapa karakter buruk, bukan spasi dan menyebabkan masalah.

Menulis ulang baris memecahkan masalah.


0

Saya menggunakan aplikasi SelfControl (sebenarnya di macOS mojave 10.14.4) cukup lama sekarang dan mencari tahu bagaimana SelfControl melakukan entri ... mereka terlihat seperti ini:

0.0.0.0 xyz.com
:: xyz.com
0.0.0.0 www.xyz.com
:: www.xyz.com

berdasarkan ini saya mengubah segalanya menjadi localhost saya, jadi

127.0.0.1
::1

bekerja.


Saya tidak yakin bagaimana ini menjawab pertanyaan sama sekali. Sepertinya hanya beberapa pengamatan acak, tidak terkait dengan pertanyaan.
Tetsujin

1
Bisakah Anda menambahkan beberapa detail di mana tepatnya Anda mengubah apa, dan bagaimana kaitannya dengan pertanyaan?
nohillside

Pertanyaannya adalah mengapa file host diabaikan sejak 10.10.1 ... Saya berada dalam situasi yang sama dengan entri manual diabaikan tetapi entri yang dibuat melalui aplikasi SelfControl, berfungsi sebagaimana mestinya. Apa yang hilang dengan entri saya sebelumnya, adalah bagian kedua, domain dengan "www.". Tidak dapat mengetahui apa lagi yang salah dengan entri saya, karena semua berfungsi dengan baik sebelum 10.10.1.
Needlol
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.