Pertama, jika networksetup -getdnsservers <service name>
tidak menunjukkan apa-apa, Anda tidak memiliki apa pun yang terdaftar di System Preferences> Netowrk di bawah "Server DNS:".
Kedua, penting untuk dicatat bahwa OS X tidak menangani DNS seperti kebanyakan sistem. Per https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html Pada dasarnya ini berarti bahwa OS X memiliki beberapa klien DNS tergantung pada konfigurasi Anda. Hasil dari beberapa layanan ini berarti bahwa ada situasi di mana menggunakan Safari untuk mengakses situs web ( http://www.example.com ) akan membawa Anda ke alamat IP yang diambil oleh OS X dari DNS (katakanlah 1.2.3.4) sementara pada saat yang sama, melakukan penggalian
$ dig www.example.com
akan mengembalikan hasil yang berbeda. (mungkin 2.3.4.5)
Alasannya terletak pada cara OS X menangani DNS.
Jika Anda menjalankan $ man dig
Anda mendapatkan antara lain, berikut ini:
PEMBERITAHUAN Mac OS X PEMBERITAHUAN Perintah penggalian tidak menggunakan nama host dan resolusi alamat atau mekanisme routing kueri DNS yang digunakan oleh proses lain yang berjalan pada Mac OS X. Hasil permintaan nama atau alamat yang dicetak oleh dig mungkin berbeda dari yang ditemukan oleh proses lain yang menggunakan nama asli Mac dan mekanisme resolusi alamat. Hasil kueri DNS mungkin juga berbeda dari kueri yang menggunakan pustaka perutean DNS Mac OS X.
Juga $man nslookup
akan mengembalikan sesuatu yang serupa
PEMBERITAHUAN Mac OS X PEMBERITAHUAN Perintah nslookup tidak menggunakan nama host dan resolusi alamat atau mekanisme perutean DNS yang digunakan oleh proses lain yang berjalan pada Mac OS X. Hasil kueri nama atau alamat yang dicetak oleh nslookup mungkin berbeda dari yang ditemukan oleh proses lain yang menggunakan nama asli Mac dan mekanisme resolusi alamat. Hasil kueri DNS mungkin juga berbeda dari kueri yang menggunakan pustaka perutean DNS Mac OS X.
Semua ini sebenarnya cara yang agak panjang untuk mengatakan, cara terbaik untuk melihat server DNS apa yang digunakan adalah dengan melihat System Preferences> Network
Entri "DNS Server:" biasanya ada di sana, dan "Search Domains:" akan memungkinkan Anda untuk mencari alamat yang tidak lengkap.
Jika "DNS Server:" tidak ada, maka OS X akan mencoba menggunakan alamat di "Router:" untuk DNS.
DAN, di atas semua kesenangan ini, ada utilitas dan proses lain yang mungkin tidak menggunakan OS Routing Library OS X, dan mereka akan langsung memukul konten /etc/resolv.conf.
Jawaban singkat singkatnya adalah ini:
- Jika Anda melihat isi System Preferences> Network, Anda melihat hal yang sama dengan yang digunakan kebanyakan proses.
- Isi System Preferences> Network, harus mengisi /etc/resolv.conf, tetapi tidak selalu.
- Beberapa proses lain (seperti menggali dan nslookup) mengakses /etc/resolv.conf secara langsung.
Dan, di atas semua ini - Jika Anda tidak menggunakan klien VPN bawaan untuk OS X, ada kemungkinan bahwa rute tambahan dan server DNS sedang digunakan yang networksetup -getdnsservers <service name>
tidak akan ditampilkan. Klien VPN Anda mungkin memiliki kemampuan untuk menunjukkan kepada Anda rute dan server DNS, saya tahu itu milik saya.
Saya tahu bahwa ini tidak secara tepat menjawab pertanyaan Anda, tetapi mudah-mudahan ini membantu Anda menyadari bahwa tidak selalu mudah untuk mengetahui apa "kebenaran" tentang DNS pada Mac. Secara umum Anda aman dengan asumsi bahwa isi System Preferences> Network, atau konten dari networksetup -getdnsservers <service name>
mana Anda mendapatkan DNS Anda. Namun jika hal-hal tampak aneh, perlu diingat bahwa ada kemungkinan lain juga. Gunakan dig untuk membantu menentukan apakah ada perbedaan yang sedang terjadi.
Terakhir, bagi para pembaca yang bertanya-tanya bagaimana untuk mendapatkan <service name>
di networksetup -getdnsservers <service name>
, coba gunakannetworksetup -listallnetworkservices
Tagihan