Tôi đang chạy Ubuntu 10.04.2 LTS Desktop. Là một nhà phát triển web, tự nhiên tôi đã tạo một "me.com" trong /etc/hosts
tệp của mình . Thật không may, độ phân giải tên của tôi sẽ đi ra DNS trước khi kiểm tra đầu vào máy chủ cục bộ của tôi và tôi không thể hiểu tại sao.
Kết quả cuối cùng là nếu /etc/resolv.conf của tôi chứa nameserver 127.0.0.1
trong đó trước, thì tôi sẽ nhận được phản hồi trong trình duyệt web của mình từ me.com (cục bộ) trong vòng chưa đến một giây. Nhưng nếu tôi không có mục đó, thì phản hồi của tôi đôi khi mất tới 5 giây nếu ISP của tôi chậm một chút.
Vấn đề rất rắc rối đến nỗi tôi thực sự phải gửi một câu hỏi ở đây (và ai đó đã giải quyết nó) về cách tự động chèn mục đó vào /etc/resolv.conf
. Nhưng một trong những người dùng (@shellholic) ở đây rất khuyến khích (và nhận xét qua lại với tôi về điều đó) rằng tôi nên gửi câu hỏi này.
Bạn có biết tại sao độ phân giải tên máy trạm của tôi phải tấn công máy chủ DNS trước khi nhấn /etc/hosts
mục nhập tệp của tôi không? Hiện tại, tôi đang sử dụng thủ thuật giải quyết .
cat /etc/nsswitch.conf
và cat /etc/host.conf
? Ngoài ra: làm thế nào để bạn kiểm tra điều này (thông qua ping, trình duyệt, đánh hơi gói vv)?
time getent hosts me.com; hostname --fqdn; grep 'me.com' /etc/hosts; grep hosts /etc/nsswitch.conf; netstat -uln | grep ':53'; cat /etc/host.conf; wc -l /etc/hosts
. Đừng ngần ngại làm xáo trộn sự hợp lý.
/etc/nsswitch.conf
. Các mục trên hệ thống của tôi hơi không rõ ràng, nhưng bạn có thể kiểm tra tra cứu chỉfiles
với một tùy chọn và xem điều đó có tạo ra sự khác biệt không.