Saya telah menginstal, mengkonfigurasi server DNS (instance lokal Dnsmasq) yang memutuskan ke localhost seperti yang saya inginkan, semua OK.
Ketika saya offline, itu berhenti berfungsi, karena OS X mengosongkan konten resolv.conf dan mengabaikan upaya untuk mencerminkan perubahan dalam file ini.
Ada ide, bagaimana cara mengkonfigurasi DNS bahkan ketika sedang offline?
Masalah serupa (belum terselesaikan): http://blog.steamshift.com/geek/leopard-lookupd-and-local-web-development-sites
Motivasi utama adalah kemudahan pengembangan aplikasi RoR yang menggunakan subdomain sebagai kunci akun. Dan Anda tidak dapat menggunakan 127.0.0.1 * .yourapp.local di / etc / hosts. Beberapa orang mendaftarkan domain smackaho.st dan DNS srt untuknya seperti .smackaho.st di 127.0.0.1 tetapi tetap saja, Anda tidak dapat menggunakannya saat Anda bekerja offline.
EDIT: mencoba perintah scutil, tetapi tampaknya Anda dapat mengubah DNS jika offline
CATATAN: saat semua antarmuka mati, Anda tidak dapat mengatur server DNS di Sebelumnya. panel.
sumber
Jawaban:
LIHAT PEMBARUAN DI BAWAH INI!
Saya juga menikmati menggunakan Dnsmasq di komputer lokal saya, dan saya juga mengalami masalah ini. Ini solusinya:
Dari
man 5 resolver
:/etc/resolver/
tidak ada secara default; Anda harus membuatnya sendiri.Juga dari halaman manual:
Jadi, jika Anda ingin semua kueri dns untuk domain tingkat atas
dev
untuk dialihkan ke server nama lokal, Anda akan:configd
tidak mengubah file/etc/resolver/
, jadi pengaturan ini akan bertahan melalui perubahan jaringan dan reboot.PEMBARUAN 17 Juli 2012
Sayangnya, pada OS X Lion, resolver atas (seperti yang ditunjukkan oleh
scutil --dns
) menghilang ketika tidak ada antarmuka yang aktif:Perhatikan bahwa resolver # 1 kosong, tetapi entri nameserver turunan / etc / resolver tetap ada.
Ternyata karena Anda dapat menentukan domain resolver langsung di file / etc / resolver /, menentukan domain root Internet khusus
.
menyebabkan penciptaan entri resolver global yang terlihat seperti:Sekarang semua permintaan DNS dirutekan ke localhost, bahkan ketika offline.
Tentu saja, Anda masih harus menyelesaikan domain yang Anda pilih sebagai 127.0.0.1 menggunakan sesuatu seperti opsi - alamat dnsmasq's:
Singkatnya:
lih. http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c
sumber
scutil --dns
ketika tidak terhubung ke internet yang saya dapatkan adalahNo DNS configuration available
saya mengikuti instruksi Anda di atas tetapi tidak berhasilMengapa tidak membuat entri di / etc / hosts sebagai gantinya? Saya mengalami kesulitan memikirkan situasi di mana Anda harus benar-benar menjalankan server DNS yang penuh sesak nafas. Saya menggunakan entri file host sepanjang waktu untuk menyelesaikan hal-hal seperti ini di Mac saya.
Penyelesai dalam OS X berfungsi berbeda dari yang ada di Linux atau Unix lainnya. Ini mungkin bagian dari apa yang menyebabkan Anda bersedih. Seperti misalnya ia memiliki preferensi untuk metode resolusi mana yang digunakan pertama dan itu cache hasil semua pertanyaan untuk jangka waktu tertentu.
Sudahkah Anda menambahkan server DNS ke antarmuka di panel preferensi Jaringan? Ini harus memastikan bahwa resolver menggunakan server itu untuk permintaannya jika ia memutuskan untuk mencari entri DNS.
sumber
(menjawab b / c saya belum bisa berkomentar ...)
Bagaimana Anda akan offline?
(jawaban terbaik yang saya dapatkan saat ini)
Jadi, Anda harus dapat memasukkan sesuatu di UI, dan itu harus tetap. Saya telah melakukan ini beberapa kali ketika saya tidak suka server DNS yang disediakan oleh server DHCP lokal saya.
sumber
Apakah OSX memiliki file konfigurasi /etc/dhcp3/dhclient.conf yang dimiliki oleh konfigurasi klien Linux / UNIX DHCP normal?
Jika demikian, harus memiliki garis yang dapat Anda batalkan komentarnya
agar klien DHCP selalu menambahkan baris itu ke resolv.conf Anda
sumber
Coba tambahkan layanan ethernet kedua yang dikonfigurasi dengan alamat statis dan 127.0.0.1 sebagai server DNS Anda. Atau, tambahkan Lokasi jaringan yang menetapkan server DNS Anda ke 127.0.0.1. Kedua perubahan ini akan dibuat di "System Preferences" di bawah panel "Network".
sumber
Mungkin membantu untuk hanya menempatkan
ke / etc / hosts, jadi tidak perlu resolver untuk menemukan localhost.
sumber