Câu trả lời:
Có một số cách - đây là hai cách:
cat /etc/resolv.conf
-hoặc là-
scutil --dns
dig
hoặc nslookup
không nhất thiết phải đưa ra một bức tranh thực tế về cách các ứng dụng macOS phân giải tên miền khỏi hệ thống cục bộ, đặc biệt là khi nhiều DNS (dành riêng cho tên miền) đã được định cấu hình, chẳng hạn như khi sử dụng máy khách VPN cho nhiều người Kết nối đồng thời. Thay vì nslookup
hoặc dig
, sử dụng dscacheutil -q host -a name somehostname.com
để kiểm tra độ phân giải DNS. Nó tính đến tất cả các máy chủ DNS được cấu hình cũng như thứ tự ưu tiên của chúng.
cat /etc/resolv.conf
dường như không còn là một giải pháp "đáng tin cậy" nữa. Đây là thông báo tôi nhận được trong macOS High Sierra khi sử dụng: (xin lỗi vì định dạng - nhận xét không hỗ trợ ngắt dòng đơn giản) # macOS Thông báo # # Tệp này không được tư vấn cho độ phân giải tên máy chủ DNS, độ phân giải địa chỉ # hoặc Cơ chế định tuyến truy vấn DNS được sử dụng bởi hầu hết các quy trình # trên hệ thống này. # # Để xem cấu hình DNS được sử dụng bởi hệ thống này, hãy sử dụng: # scutil --dns
scutil --dns | grep nameserver
để chỉ có được các máy chủ DNS.
Lệnh shell sau đây có thể hữu ích để liệt kê các mục DNS hiện tại:
grep nameserver <(scutil --dns)
Để lọc nó ra cho tập lệnh, bạn có thể chuyển đầu ra thành awk '{print $3}'
hoặc ra grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"
lệnh.
scutil --dns | grep nameserver
đúng (chỉ khác cú pháp)?
networksetup -getdnsservers
không hoạt động cho các máy chủ DNS được gán DHCP. Tôi luôn quên vềscutil
. 'Sc' là viết tắt của Cấu hình hệ thống? Nó chắc chắn không cấu hình nhiều hệ thống ...