Tôi đã gặp vấn đề chính xác tương tự và thấy một chủ đề về máy Mac mini gặp sự cố DNS trên Thảo luận của Apple cực kỳ hữu ích.
Mấu chốt của vấn đề: mDNSResponder dường như thỉnh thoảng thay đổi thứ tự của các máy chủ DNS mà nó truy vấn và vì vậy nếu nó truy vấn các máy chủ DNS của ISP trước thì nó sẽ không nhận được một bản ghi thích hợp (hoặc nếu bạn đang sử dụng DNS tách thì bạn sẽ nhận được IP công cộng của bạn).
Cách khắc phục tốt nhất cho việc này là đảm bảo (như bạn đã làm) rằng chỉ các máy chủ DNS được yêu cầu được liệt kê trong cài đặt DNS của bạn. Điều này có thể yêu cầu xóa các máy chủ DNS ISP khỏi DHCP của bạn (như tôi cũng phải làm như vậy - tất cả các yêu cầu đều được chuyển tiếp qua máy chủ DNS cục bộ).
Lý do các tiện ích thích dig
và nslookup
sẽ thành công như bình thường là chúng đang sử dụng BIND và /etc/resolv.conf
trực tiếp không giống với phần còn lại của hệ điều hành.
Để tham khảo trong Snow Leopard, bộ đệm DNS hiện được lưu trữ bởi mDNSResponder và để xóa nó, bạn cần khởi động lại quá trình bằng cách sử dụng sudo killall -HUP mDNSResponder
. Bạn có thể nhận thêm thông tin (ghi nhật ký, kết xuất trạng thái nội bộ, v.v.) bằng cách sử dụng các cờ khác nhau cho killall
lệnh.
"sudo killall -USR1 mDNSResponder" to enable operation logging.
"sudo killall -USR2 mDNSResponder" to enable packet logging.
"sudo killall -HUP mDNSResponder" to clear the DNS cache.
"sudo killall -INFO mDNSResponder" to dump mDNSRepsonder's internal state.
Nguồn: Snoop Dogg trên cùng một chủ đề.