Beberapa rekan kerja saya mengalami masalah pada Mac mereka - resolusi DNS tidak berfungsi di bawah Mac OS X. Mereka menjalankan Snow Leopard 10.6.8. Mereka dapat menggunakan DNS di mesin virtual Windows 7 (VMware Fusion 3.1.3) yang berjalan di bawah OS X. Komputernya adalah MacBook Pro 15 ", model awal 2011.
Hal-hal yang telah mereka coba yang belum berhasil:
- menyalakan / mematikan bandara
- me-reboot
- menggunakan koneksi kabel bukan wifi
- menghapus kredensial koneksi dan menambahkannya lagi
- mematikan firewall Mac
- menggunakan IP statis tetap
- pengaturan server DNS secara manual
- me-restart mDNSResponder
- perbaikan dari pertanyaan lain ini
Respons EDIT Jawaban Martín:
• Dapatkah Anda melakukan ping DNS yang ingin Anda gunakan?
$ ping apple.com
ping: cannot resolve apple.com: Unknown host
• Apakah alamat IP dari DNS yang ingin Anda gunakan?
Ini adalah server DNS perusahaan yang diberikan bersama DHCP, ini berfungsi dengan baik untuk orang lain. Saya juga mencoba Google 8.8.4.4 dan 205.171.3.65 (yang saya temukan dari Tolok Ukur DNS GRC menjadi yang tercepat).
• Sudahkah Anda mencoba menggunakan 8.8.8.8 (google) atau OpenDNS 208.67.222.222 atau 208.67.220.220?
Tidak berfungsi, lihat output Google Chrome:
Server di www.apple.com tidak dapat ditemukan, karena pencarian DNS gagal. DNS adalah layanan jaringan yang menerjemahkan nama situs web ke alamat Internetnya. Kesalahan ini paling sering disebabkan oleh tidak adanya koneksi ke Internet atau jaringan yang salah konfigurasi. Ini juga dapat disebabkan oleh server DNS yang tidak responsif atau firewall yang mencegah Google Chrome mengakses jaringan.
• Bisakah Anda melakukan ping host tersebut?
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from
8.8.8.8: icmp_seq=0 ttl=58 time=3.925 ms
• membuat pengguna kosong
Akun pengguna tamu telah dibuat, masalah DNS masih ada ketika menggunakan akun tamu.
• nslookup dan gali keduanya berfungsi dengan baik
$ nslookup www.apple.com 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
www.apple.com canonical name = www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net canonical name = www.apple.com.edgekey.net.
www.apple.com.edgekey.net canonical name = e3191.c.akamaiedge.net.
Name: e3191.c.akamaiedge.net
Address: 184.24.141.15
$ dig @8.8.8.8 www.apple.com
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 www.apple.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11298
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION: ;www.apple.com. IN A
;; ANSWER SECTION:
www.apple.com. 1041 IN CNAME www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net. 38 IN CNAME www.apple.com.edgekey.net.
www.apple.com.edgekey.net. 8794 IN CNAME e3191.c.akamaiedge.net.
e3191.c.akamaiedge.net. 17 IN A 184.24.141.15
;; Query time: 4 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Oct 4 09:25:28 2011
;; MSG SIZE rcvd: 158
• juga membersihkan cache DNS sudah dilakukan tetapi tidak membantu
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
EDIT 2 :
$ cat /etc/resolv.conf
#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
domain {redacted}.com
nameserver 8.8.8.8
nameserver 208.67.222.222
Jawaban:
Ternyata solusinya adalah dengan memantulkan mDNSResponder:
Ini diperoleh oleh rekan kerja yang berbeda dari pertanyaan Server Fault ini .
OS X 10.10.0 - 10.10.3, Yosemite
Rupanya , mDNSResponder tidak ada di Yosemite (OS X 10.10). Anda dapat memulai kembali descoveryd sebagai gantinya untuk memperbaiki masalah ini.
OS X 10.10.4+, Yosemite
Di OSX 10.10.4 mDNSResponder telah diperkenalkan kembali . Jadi gunakan yang pertama akan bekerja lagi.
sumber
Sebenarnya, saya pikir Anda mungkin ingin menggunakannya
Perintah-perintah ini menggunakan toko dinamis dalam configd, tidak seperti flatfiles di / etc, yang sering hanya dibaca dalam mode pengguna tunggal dan untuk sistem non jaringan.
sumber
Saya pernah mengalami masalah yang sama ... Dan ketika me-restart mDNSResponder tampaknya "bekerja", me-restart beberapa kali setiap jam agak menyebalkan.
Jadi, untuk saat ini, saya telah "memecahkan" masalah dengan menjalankan dnsmasq secara lokal. Untuk melakukannya:
make
ataubrew install dnsmasq
)Masukkan ini ke dalam
dnsmasq.conf
file:Letakkan ini di
resolv.conf
file yang ada di direktori yang sama dengandnsmasq.conf
file (nb: not/etc/resolv.conf
):Jalankan
dnsmasq
dengansudo dnsmasq --no-daemon --log-queries -C dnsmasq.conf
. Outputnya akan terlihat seperti:Buka Preferensi Jaringan dan pastikan itu
127.0.0.1
adalah satu-satunya server DNS (preferensi jaringan -> lanjutan -> DNS -> tambahkan 127.0.0.1)Segala sesuatu harus mulai bekerja dengan baik lagi.
Setelah semuanya berfungsi, Anda dapat menjalankan
dnsmasq
tanpa opsi--no-daemon
dan--log-queries
, jadi itu akan dimulai di latar belakang dan Anda tidak perlu membuka jendela Terminal.sumber
openconnect
perintah saya dalam skrip python, bersama dengan perintah sepertinetworksetup -setdnsservers 127.0.0.1
dannetworksetup -setsearchdomains "$COMPANY_NAME".com
. Tambahkandnsmasq
perintah Anda dan semuanya siap! Saya akhirnya memiliki solusi VPN yang stabil berkat komentar ini.Resolusi nama di bawah OSX (dan UNIX secara umum) diambil dari alamat IP DNS dalam file yang terletak di /etc/resolv.conf (yang dihasilkan oleh OS X secara otomatis sejauh yang saya ingat).
Karena Anda sudah mencoba hampir semua hal yang muncul di pikiran saya, saya ingin bertanya kepada Anda:
Akhirnya, tes yang biasanya bagus terdiri dari membuat pengguna kosong dan melihat apakah pengguna baru itu menunjukkan masalah yang sama. Jika tidak, maka Anda dapat mulai menggali apa yang dimiliki oleh pengguna Anda saat ini yang dapat menyebabkan masalah; jika itu juga gagal, maka Anda tahu ini adalah sesuatu yang lebih "sistem" terkait.
Lihat juga di sekitar Konsol untuk melihat apakah Anda dapat menemukan sesuatu yang mungkin terkait (dan ingin menempel di sini).
Terakhir, Mac Anda dilengkapi dengan dua perintah DNS penting,
nslookup
dandig
.Jadi untuk menyelesaikan www.apple.com menggunakan server google, Anda harus mengetik:
nslookup "host untuk menyelesaikan" "server DNS yang akan digunakan". Misalnya:
NSLookup adalah perintah lama (yang seharusnya tidak digunakan lagi beberapa tahun yang lalu dan digantikan oleh DIG, tetapi sintaksinya yang mudah digunakan terlalu bagus untuk dibunuh, saya kira.), "Penggantian" -nya adalah
dig
, perintah yang jauh lebih kuat, yang sintaksisnya lebih gila.Untuk melakukan kueri yang sama, Anda harus mengetik:
gali @ 8.8.8.8 www.apple.com
Dan inilah hasilnya:
Seperti yang Anda lihat, menggali jauh lebih banyak "verbose" (yang bagus untuk men-debug apa yang sedang terjadi). Kekuatan penggalian berasal dari fakta bahwa Anda dapat menentukan jenis permintaan apa yang ingin Anda lakukan (Antara lain).
Bagaimanapun, beri tahu kami output yang tepat dari perintah ini.
sumber
Saya memiliki gejala yang sama persis sama (dan menghabiskan pemecahan masalah sementara) tetapi saya bisa mengatasinya ketika saya menyadari bahwa saya mengacaukan
/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
dan apa yang saya lakukan entah bagaimana ditafsirkan sebagai cacat. Saya dipulihkan dari cadangan dan mesin dapat menyelesaikan nama host lagi.Sebelum datang ke solusi, saya juga menyadari bahwa saya dapat menelusuri internet jika saya menggunakan proxy SOCKS5 melalui
ssh -D
dan mencoba pencarian DNS melalui terowongan.sumber
com.apple.mDNSResponder.plist
! Saya melakukannya sesuai saran @TomThorogood. Saya kesulitan untuk kembali. Bahkan saya mengembalikan file dan me-restart saya tidak bisa mendapatkan respon dari internet. Darisudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
membantu.Saya memiliki masalah yang sangat, sangat mirip, kecuali gejalanya sedikit berbeda.
Pengguna saya tidak dapat menyelesaikan nama apa pun (NAS lokal, Google, dll.) Tetapi seorang pengguna tamu di iMac yang sama (OS X 10.7.4) bekerja dengan baik.
Pembilasan dan memulai kembali mDNSResponder seperti yang disebutkan bekerja untuk sementara waktu. Sementara itu akan tetap berfungsi ketika iMac dimasukkan ke mode sleep, itu akan selalu gagal setelah reboot.
Ketika flush / restart berhenti berfungsi saya mencari alasan / solusi lain dan saya menemukan bahwa itu terkait dengan firewall saya. Saya tidak tahu apa yang disebabkan oleh pengaturan firewall (OS X) saya, tetapi jika saya mengembalikan pengaturan firewall itu berfungsi.
Untuk mengembalikan pengaturan default yang saya gunakan:
Jelas setiap aturan khusus akan dihapus dengan pengembalian ini.
Saya ingin membagikan versi saya tentang masalah ini karena telah menyebabkan saya sedih dan kehilangan selama berbulan-bulan dan posting ini adalah koleksi terbaik dari solusi yang mungkin di internet!
sumber
Saya mengalami masalah ini pada Yosemite (10,10). Ternyata daemon kunci,,
discoveryd
dimatikan karena terlalu banyak mengkonsumsi CPU.Anehnya, me-reboot tidak menyebabkannya dimulai ulang.
Saya secara manual me-restart layanan dengan:
dan sekarang semuanya baik-baik saja.
sumber
Saya mengalami masalah yang sama dengan 10.6.8. Perjalanan pertama ke Apple Store menghasilkan pemulihan sistem. Tapi, setelah itu, DNS rusak lagi ketika saya di luar negeri dan tidak memiliki DVD sistem. Pada saat itu saya menemukan utas ini dan menghapus
/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
per @freezedpeanuts dan @Tom Thorogood.Itu memperbaiki masalah, tetapi, luar biasa, DNS pecah untuk ketiga kalinya beberapa hari kemudian. Saya memburu gambar sistem 10.6.3 dan:
/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
dari gambar sistem.sudo chown root /System/Library/LaunchDaemons/com.apple.mDNS*
Itu memperbaiki masalah.
Itu rusak secara berkala untuk saya sekarang (sebulan sekali atau lebih), dan prosedur pemulihan turun ke langkah-langkah di atas, kecuali bukannya me-reboot Anda bisa:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sumber
Harap perhatikan siapa pun yang masih memiliki masalah, Anda mungkin harus menghapus server DNS publik apa pun hingga cache dihapus.
sumber
Saya memiliki masalah yang sama dengan OP. Menggunakan alat networksetup, saya menemukan bahwa untuk nama jaringan yang diberikan, beberapa DNS yang salah telah dikonfigurasi:
terdaftar 192.168.0.1 sebagai DNS. Menggunakan scutil --dns, saya mendapatkan hasil yang sebanding, daftar resolver # 2 yang digunakan nameserver [0]: 192.168.0.1.
Menggunakan perintah
Saya dapat mengkonfigurasi ulang DNS untuk jaringan yang diberikan dan menyelesaikan nama-nama mesin lokal dan global ketika terhubung ke VPN.
sumber
Ini mungkin tidak akan membantu siapa pun, tetapi seandainya, saya tidak sengaja beberapa waktu yang lalu, membuat file di folder, ketika DNS turun untuk domain tertentu:
/ etc / resolver /
dan ini mencegah nama tertentu dari diselesaikan, dua tahun kemudian.
sumber
scutil --dns
dan memperhatikan bahwa resolver # 8 menambahkan nameserver khusus untuk domain saya yang bermasalah. Saya pertama kali mencoba menghapusnya melaluiscutil
antarmuka baris perintah tetapi tidak berhasil. Dan kemudian saya entah bagaimana menemukan/etc/resolver
... haleluya! Jawaban ini sangat berguna untuk menjelaskan gagasan DNS pada macOS.Dalam kasus saya, semuanya baik-baik saja: mDNSResponder sedang berjalan dan bekerja,
host
/nslookup
bekerja, keduanya/etc/resolv.conf
dannetworksetup
melaporkan server DNS yang benar, dll. Meskipun demikian, resolusi DNS secara umum (misalnya denganping
) secara tak terelakkan berhenti bekerja di beberapa titik beberapa jam setelah bootMasalah khusus ini mungkin agak tidak mungkin, tetapi saya akan mendokumentasikannya di sini sebagai jawaban.
Saya hanya memperhatikan ketika mesin mulai melambat, tetapi ada banyak proses yang identik berjalan .
sensu-client
khususnya.Kami sudah mengkonfigurasi di launchd dengan file plist ini:
The
-b
bendera untuksensu-client
membuat garpu ke latar belakang, bertindak sebagai daemon. Namun, semualaunchd
melihat bahwa proses asli dihentikan, jadi (sesuai denganKeepAlive
bendera) itu me-restart itu. Ini menyisakan ribuan proses bercabang di latar belakang, dan bahkan launchd tidak akan lebih bijaksana dengan kenyataan bahwa itu sedang berjalan.Saya percaya bahwa beberapa ribu proses ini (semua
sensu-client
, perangkat lunak yang telah kami buat konfigurasi launchd) mungkin telah secara bersamaan membuat permintaan ke mDNSResponder, secara efektif menghasilkan penolakan layanan cache cache DNS secara lokal . Membunuh proses ini dan memperbaiki plist yang diberikan ke launchd akhirnya menyelesaikan masalah.Perbaikan plist adalah hanya untuk menghapus
-b
flag (background / daemonise) dari doa sensu-client. Perhatikan bahwa ini bukan kesalahan sensu; plist ini ditulis oleh seorang mantan administrator sistem di perusahaan ini.sumber
Berikut adalah beberapa perintah lanjutan yang dapat membantu memecahkan masalah DNS:
dig
untuk mendaftar server nama root.dig example.com
untuk menjalankan pencarian DNS untukexample.com
domain.networksetup -listallhardwareports
.ipconfig getpacket en0
.scutil --dns
.mDNSResponder
proses sedang berjalan oleh:ps wuax | grep mDNSResponder
.arp -ad
(jalankanman arp
untuk bantuan). sumberUntuk
mDNSResponder
proses debug , perintah berikut ini dapat membantu:Perintah di atas akan mengirimkan
SIGINFO
sinyal ke proses yang akan membuang rincian debug ke dalam output log yang dapat dibaca dan dianalisis.sumber
Mematikan dan menghidupkan Wi-Fi lagi membantu.
MacBook Pro dengan 10.9.1
Apalagi jika Anda mematikan wifi lalu reboot. Penundaan tambahan dan mulai tanpa koneksi IP / jaringan memastikan permintaan untuk bergabung kembali dengan jaringan memiliki peluang yang lebih baik untuk berhasil.
sumber
Sayangnya tidak ada yang membantu saya, dan ternyata setelah satu jam mencoba mencari tahu dan memukul kepala saya di atas meja kopi .. sesuatu, entah bagaimana, di suatu tempat ... menghapus
/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
file, dan merupakan alasan saya memiliki masalah ini.Menyadari ini ketika saya melihat pesan kesalahan ini:
/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist: No such file or directory
Ini salinan versi dari El Capitan: https://gist.github.com/tripflex/e7147690d1768dc74b1dd626614573c0
Berikut kode dari intisari itu:
sumber
Ternyata, untuk menyelesaikan masalah Anda harus mengkonfigurasi domain pencarian dan menambahkannya ke bidang domain pencarian di bawah System Preferences dns configuration. Pada dasarnya, domain pencarian akan berfungsi seperti halnya .local, tetapi sebaliknya.
Anda harus mengatur domain pencarian Anda sebagai zona master di server dns Anda agar ini berfungsi.
sumber
Saya punya masalah serupa dengan menemukan server host. Kami memiliki 21 iMac yang berjalan dari Server (El Capitan, baru-baru ini ditingkatkan) dan hanya satu yang tidak akan mengikat. Cara mengatasinya biasanya cukup sederhana melalui Users and Groups di SysPref. Menghapus server host dan mengikat kembali, menemukan server yang tersedia di opsi dropdown, tetapi untuk beberapa alasan yang tidak diketahui server terdaftar sebagai
unkown-00-00-12-34-56-78.home
, yang saya temukan adalah alamat MAC dari server. Saya menjalankan ini di terminal:dan
kembali untuk mengikat ke server di SysPref dan opsi nama server yang benar muncul sebentar dan kemudian berubah kembali menjadi "unkown-00-00-12-34-56-78.home" tepat di depan mataku!
sumber
Saat mengikuti perintah dari jawaban yang diterima:
Anda mungkin mengalami peringatan:
Anda harus mematikannya. Seluruh instruksi di sini: https://www.howtogeek.com/230424/how-to-disable-system-integrity-protection-on-a-mac-and-why-you-shouldnt/
sumber
Dalam kasus saya, saya telah menginstal OpenDNS di masa lalu dan itu tidak dihapus dengan bersih. Ada beberapa proses terkait dns yang berjalan seperti DNSdnscrypt-proxy. Saya tidak bisa memaksa berhenti mereka di Activity Monitor tetapi saya bisa menghentikan mereka memulai kembali dengan menghapus file .plist di Library / LaunchDaemons.
sumber
Buka Pengaturan -> Jaringan -> Tingkat Lanjut -> DNS. Kemudian buat perubahan apa pun pada DNS (atur ulang entri DNS Anda, misalnya). Kemudian klik "Ok" diikuti oleh "Terapkan" di layar berikutnya. Jangan tertipu dengan berpikir bahwa perubahan tertentu yang Anda buat adalah signifikan; itu keajaiban tombol "Terapkan".
sumber
Apa yang berhasil bagi saya adalah menghapus semua entri server dari Server DNS dan Domain Pencarian dari:
System Preferences → Network → Advanced ... → DNS
sumber
Setelah memutakhirkan dari Snow Leopard di Mac Book lama ke Mountain Lion, sistem tidak dapat menyelesaikan DNS. Pembilasan, restart, tidak ada yang membantu. Mengubah WiFi ke titik akses yang berbeda (ponsel saya) membantu.
Mountain Lion menambahkan bidang klien baru ke pengaturan jaringan DHCP. Mengisi bidang ini sepertinya membuat jalur akses wifi bahagia. Membiarkannya kosong berarti tidak ada yang berhasil, meskipun koneksi wifi sepertinya berhasil.
sumber