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
dighoặc nslookupkhô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ì nslookuphoặ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.confdườ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 -getdnsserverskhô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 ...