Tại sao kết quả nslookup luôn đến từ máy chủ 127.0.0.1


11

Tôi thấy khá bối rối khi nslookup luôn nhận được kết quả từ Máy chủ 127.0.0.1

Có phải vì Ubuntu sử dụng bộ đệm DNS cục bộ của dnsmasq ? Nhưng tôi đã đóng nó và xóa bộ nhớ cache dns của mình, sau đó nslookup một máy chủ mà tôi chưa bao giờ truy cập, thì đầu ra vẫn là 127.0.0.1.

Điều đó khiến tôi khá bối rối. Bất cứ ai có thể giải thích điều này cho tôi? Nhân tiện, máy chủ DNS của tôi được đặt thành 8.8.8.8.

Câu trả lời:


11

Theo mặc định, Ubuntu thực sự lưu các mục DNS với Dnsmasq. Dnsmasq thực hiện tra cứu khi mục DNS không có trong bộ đệm, đó là lý do tại sao bạn sẽ luôn thấy địa chỉ IP localhost( 127.0.0.1) khi thực hiện tra cứu DNS mà không chỉ định máy chủ tên.

Trong trang này, nó được giải thích như sau:

Dnsmasq chấp nhận các truy vấn DNS và trả lời chúng từ một máy chủ nhỏ, cục bộ, bộ đệm hoặc chuyển tiếp chúng đến một máy chủ DNS thực, đệ quy. Nó tải nội dung của / etc / hosts để tên máy chủ cục bộ không xuất hiện trong DNS toàn cầu có thể được giải quyết và cũng trả lời các truy vấn DNS cho máy chủ được cấu hình DHCP.

Hành vi này có thể được ghi đè bằng cách chỉnh sửa /etc/NetworkManager/NetworkManager.confvà thay đổi dns=dnsmasqthành #dns=dnsmasq, sau đó bạn sẽ cần khởi động lại dịch vụ quản lý mạng ( sudo service network-manager restart).

Thông tin thêm có thể được tìm thấy trong các tài liệu cộng đồng và trong trang web .


1
Cảm ơn vi đa trả lơi. Tôi đã không nhận ra rằng Dnsmasq sẽ tra cứu khi mục DNS không có trong bộ đệm. Cảm ơn rất nhiều!
47dev47null

Phải làm gì nếu đã không có dns=dnsmasqhàng?
Douglas Gaskell

@DoumundGaskell: câu trả lời này đã lỗi thời: Tôi tin rằng Ubuntu đã chuyển sang systemd-resolvedphiên bản 17.04. Xem: Askubfox.com/questions/907246/ khăn
Silke

2

kiểm tra nếu

mèo /etc/NetworkManager/NetworkManager.conf

[chủ yếu]

plugin = ifupdown, keyfile

dns = dnsmasq

[ifupdown]

quản lý = sai

băm (#) ra dns = dnsmasq

lưu tập tin và khởi động lại mạng.

Nếu bạn không muốn trình phân giải cục bộ, bạn có thể tắt DNSMASQ bằng quy trình sau

Bạn cần chỉnh sửa tập tin /etc/NetworkManager/NetworkManager.conf

gksudo gedit /etc/NetworkManager/NetworkManager.conf

và nhận xét dòng sau từ

dns=dnsmasq

đến

#dns=dnsmasq

Lưu và thoát tệp

Bây giờ bạn cần quản lý mạng bằng lệnh sau

sudo restart network-manager

Tham chiếu: http://www.stgraber.org/2012/02/24/dns-in-ubfox-12-04/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.