Setelah memutakhirkan ke Mac OSX Lion, saya menemukan bahwa / etc / hosts tidak lagi dicari untuk resolusi nama. Hal ini menyebabkan beberapa efek samping seperti:
- Entri di / etc / hosts diselesaikan dengan sangat lambat
- Anda tidak dapat tidak menimpa domain yang ada, misalnya 127.0.0.1 www.google.com
- Jika Anda mendapatkan entri domain pencarian dari DHCP, katakanlah .lan, dan beberapa orang lucu mengkonfigurasi localhost.lan ke sesuatu yang lain maka 127.0.0.1 di DNS lokal Anda tidak dapat menjangkau localhost Anda lagi.
Apakah perilaku ini disengaja? Apakah itu masuk akal? Dan yang paling penting, bagaimana saya bisa kembali ke perilaku lama.
macos
dns
osx-lion
hosts-file
Meik
sumber
sumber
Jawaban:
Saya pikir masalahnya adalah Lion menangani. TLD lokal berbeda karena dicadangkan untuk beberapa fitur DNS Multicast (digunakan oleh Bonjour). Satu-satunya cara yang saya temukan untuk memecahkan masalah ini adalah menggunakan TLD yang berbeda untuk host pengembangan (yaitu: .dev). Ini berfungsi dengan baik untuk saya, semoga bermanfaat bagi orang lain!
sumber
http://foo.dev/
; Setelah itu, Chrome akan menyadari bahwa itufoo.dev
adalah domain, bukan kueri.Berkenaan dengan menimpa domain di file host, saya telah menemukan bahwa dalam beberapa keadaan, Lion menanyakan alamat IPv6 untuk domain jika ia merasakan bahwa domain tidak dapat dijangkau melalui jaringan IPv4.
Saya menemukan ini ketika saya melihat beberapa iklan yang belum pernah saya lihat sebelumnya di Snow Leopard karena saya telah mengalihkan domain iklan ke
127.0.0.1
. Saya menjalankan wireshark dan melihat kueri (AAAA
data DNS IPv6) yang mengikutiA
kueri IPv4 (IPv4). Server iklan memang memiliki tambahan IPv6 dan dapat menyajikan saya konten mereka.Solusi untuk ini adalah memiliki a
entri untuk setiap
entri di file host Anda.
Menariknya, jika Anda kebetulan memiliki server web lokal yang berjalan
127.0.0.1:80
dan browser Anda menerima respons dari server web (kesalahan atau sebaliknya), tidak adaAAAA
kueri yang dikeluarkan, karena tampaknya dapat dipastikan bahwa koneksi TCP paling tidak memungkinkan.Pada catatan terkait, jika Anda banyak menggunakan file host (untuk adblocking, pengembangan web lokal, dll), Anda mungkin ingin melihat untuk menjalankan resolver DNS lokal Anda sendiri. Ada banyak masalah pada disk / CPU yang harus membaca
/etc/hosts
setiap permintaan, jadi sebaiknya Anda menyimpan file tersebut dengan sangat ringan.Satu keuntungan menjalankan sesuatu seperti
dnsmasq
secara lokal (selain peningkatan kinerja yang signifikan) adalah Anda dapat mengarahkan kembali seluruh domain tingkat atas ke mesin lokal Anda. Ini memungkinkan Anda memiliki seluruh namespace * .dev untuk pengembangan (misalnya), tanpa harus memasukkan setiap domain yang ingin Anda selesaikan secara lokal./etc/hosts
sumber
/etc/hosts
- OS akan menyimpan file dalam cache jika sering digunakan.Masalahnya adalah saya menghubungkan file / etc / hosts. Jika / etc / hosts adalah file biasa, semuanya baik-baik saja.
sumber
Pembaruan (2): OSX 10.10.5 menghadirkan kembalinya
mDNSResponder
.Pembaruan: OSX 10.10 Yosemite telah menggantikan mDNSResponder dengan "discoveryd". Saya belum mengupgrade jadi saya tidak yakin dengan perilaku discoveryd w / r / t DNS lookup dan
/etc/hosts
.Penyelesai DNS sistem di Lion adalah
mDNSResponder
prosesnya.Anda mungkin berpikir "tetapi mDNSResponder adalah penjawab dns multicast." Kamu benar; untuk itulah awalnya, dan masih memenuhi fungsi ini. Namun, pada versi MacOS yang lebih baru, ia juga melakukan pencarian host standar.
Di Lion, tampaknya tidak otomatis dibaca ulang
/etc/hosts
saat berubah, setidaknya tidak selalu. MembunuhmDNSResponder
(dan membiarkannya dimulai ulang secara otomatis) tampaknya memperbaiki masalah.harus melakukan triknya.
di bawah ini adalah jawaban asli saya untuk anak cucu. Saya kira itu mungkin masih menjadi masalah dalam beberapa kasus.
Pastikan
/etc/hosts
file Anda adalah file teks gaya unix, dengan linefeeds sebagai akhiran daripada cr.Mengedit dengan TextWrangler atau editor teks unix akan mempertahankan file tersebut.
Jika file Anda sudah kacau, coba ini untuk memperbaikinya
kredit untuk perbaikan ini untuk:
http://techpatio.com/2011/guides-how-to/fixed-mac-osx-lion-etc-hosts-bugs-dns
sumber
Saya mengalami masalah ini untuk sementara waktu, karena saya sedang bekerja dengan tim pengembang menjadi perlu untuk benar-benar menggunakan .local daripada .dev atau .localhost, saya menemukan artikel ini sangat berguna.
iTand.me - domain lokal Lion dan host dll ..
Singkatnya;
Tetapi jika Anda harus menggunakan .local, solusi paling elegan yang saya temukan adalah utilitas dscl. Menggunakannya sangat mudah. Untuk menambahkan host bernama mydev.local dan mengarahkannya ke localhost, lakukan ini:
Untuk melihat semua host yang saat ini ditentukan dan IP-nya
Dan untuk menghapus host:
Secara keseluruhan, cukup mudah dan berfungsi dengan baik. Saya masih lebih suka mengedit / etc / hosts, tetapi ini adalah alternatif yang lebih baik daripada harus mengganti nama semua server .local kami.
sumber
Sebelum pindah dari Snow Leopard ke Lion, saya memiliki beberapa entri khusus aplikasi
/etc/hosts
, seperti ini:Setelah pembaruan, memuat aplikasi lokal saya SANGAT lambat. Saya perhatikan bahwa penundaan terjadi sebelum permintaan muncul di file log, dan setelah itu terjadi, aplikasi itu sendiri secepat biasanya.
Sekarang saya memiliki dua baris per aplikasi, seperti ini:
... dan semuanya cepat lagi.
Ternyata ini menambahkan alamat IPv6? Saya tidak begitu mengerti, sungguh, tapi berhasil.
sumber
Situasi saya serupa, tetapi penundaan, tepat 5 detik, hanya terjadi untuk URL yang diakhiri dengan '.local'. Saat melihat situs yang berakhiran '.dev', tidak ada penundaan.
Beberapa pengembang lain di kantor saya mengalami masalah ini, sementara beberapa tidak. Saya berharap untuk perbaikan sederhana dan saya tidak ingin mengganti nama situs menjadi '.local' karena ketergantungan lainnya.
Saya menjalankan perintah berikut di Terminal dan membagi hasil saya dengan beberapa pengguna lain di kantor.
Bagian ini adalah satu-satunya perbedaan:
Mac saya ditautkan ke akun iCloud saya dan saya mengaktifkan Kembali ke Mac Saya. Setelah saya menonaktifkan Kembali ke Mac Saya, resolver tambahan menghilang dan penundaan 5 detik menghilang.
sumber
Wow, sungguh mimpi buruk. Saya telah membaca sepenuhnya semua tentang subjek ini dan semua yang telah disarankan sejauh ini sangat mirip dengan apa yang saya alami, tetapi tidak ada solusi yang berhasil untuk saya.
Dan saya menemukan alasannya.
Tidak seperti yang lain, saya tidak menggunakan / etc / hosts untuk mengatur domain lokal. File / etc / hosts saya adalah stok, hanya berisi entri yang diperlukan untuk antarmuka loopback dan host siaran. Selain itu, itu adalah file unix yang dikodekan dengan benar, karena saya adalah tipe orang yang hanya akan mengeditnya dari baris perintah menggunakan emacs. Dan, syukurlah, saya tidak perlu menjalankan server DNS saya sendiri seperti DNSmasq untuk mengatasi masalah tersebut.
(Untuk lebih jelasnya, gejala yang membawa saya ke masalah ini adalah bahwa emacs membutuhkan waktu sekitar 10 detik untuk memulai, tetapi hanya ketika saya menggunakan wifi. Jika saya mematikan wifi, emacs akan mulai seketika seperti yang diharapkan.)
Solusi saya: laptop saya memiliki nama, "terminator". (Ya, eksterior aluminiumnya yang mengilap membuat saya memikirkan karakter Arnold Schwarzenegger.) Saya hanya perlu menambahkan entri ke / etc / hosts untuk nama mesin itu sendiri:
Saya menemukan nama host saya dengan menjalankan perintah sederhana di terminal:
... yang kembali dengan output: "terminator". Setelah mengubah / etc / hosts agar memuat dua entri tersebut, emacs sekarang dapat dengan cepat menyelesaikan nama laptop saya.
Saya harap ini membantu seseorang.
sumber
Saya mengalami masalah kecepatan menggunakan OSX Lion sebagai kotak pengembangan web ... Menggunakan kombinasi saran, saya terpaksa menonaktifkan jaringan ipv6 dan merutekan ipv6 ke localhost6 ... semuanya dipercepat ...
/ etc / hosts ...
sumber
Saya pikir ada beberapa perbaikan bug. Saya telah melihat banyak masalah yang disebutkan, dan tidak satu pun dari ini yang tampaknya berlaku saat ini (misalnya, menempatkan beberapa alias pada satu baris sekarang berfungsi dengan baik untuk saya).
Bagaimanapun, tampaknya dengan Lion, Apple membuat beberapa perubahan drastis pada mDNSResponder yang menangani semua pencarian DNS, dan (setidaknya dengan Lion) juga menangani / etc / hosts cacheing. Bagi saya, pencarian ke depan juga sekarang berfungsi. Tetapi pencarian terbalik (misalnya mencari 1.2.3.4 sebagai ganti google.com) tidak berfungsi.
Setelah banyak kesulitan, sepertinya mDNSResponder mengubah pencarian ini menjadi 4.3.2.1.in-addr.arpa dan melakukan pencarian nama. Ini mungkin cara DNS lebih suka beroperasi, tetapi tidak berfungsi sama sekali dengan / etc / hosts.
Kecuali tentu saja Anda menambahkan alias 4.3.2.1.in-addr.arpa untuk setiap host, di mana 4.3.2.1 adalah alamat ip dengan urutan berlawanan dari yang biasa Anda lihat. Ini memperbaiki segalanya untuk saya. Berikut adalah contoh entri / etc / hosts:
1.2.3.4 foo foo.example.com alias.example.com 4.3.2.1.in-addr.arpa
sumber