Làm cách nào để xóa bộ đệm DNS trong Ubuntu?


45

Tôi đang gặp vấn đề liên quan đến giải quyết DNS trong Ubuntu 9.10 của mình.
Trước khi phàn nàn với ISP của tôi, tôi muốn làm mới bộ đệm DNS cục bộ của mình, như trong Windows chúng tôi làm ipconfig /flushdns.

Làm thế nào tôi có thể làm điều đó trong Ubuntu?

Câu trả lời:


54

Øhh, Ubuntu không lưu DNS trên mỗi mặc định. Vì vậy, không có gì để tuôn ra! (nhưng có lẽ bộ định tuyến SOHO của bạn không). Cài đặt nscd sẽ tạo DNS bộ nhớ cache Ubuntu, sau đó bạn có thể xóa bộ nhớ cache của mình - nhưng điều này nằm ngoài vấn đề, khi bạn chưa cài đặt nó!


3
Vì tò mò, tôi vào ngày 14.04 và đang chạy nslookupcho tôi biết rằng phản hồi đến từ máy chủ 127.0.0.1. Nhưng - theo hiểu biết của tôi - tôi chưa cài đặt bộ đệm ẩn DNS (cũng không nscdphải dnsmasq). Tôi đang ở trên Kubfox ... đây có thể là một thứ của Trình quản lý mạng KDE không?
shoutuma

@exhuma tương tự ở đây trên Ubuntu 14.04 vì vậy nó không phải là một thứ kubfox.
LJ_1102

2
@ LJ_1102 @ shoutuma Đó sẽ là trình quản lý mạng của Ubuntu, nó lắng nghe như một máy chủ DNS cục bộ, nhưng chuyển tiếp tất cả các yêu cầu tới bất cứ điều gì được xác định. Là một hiệu ứng phụ (hoặc theo thiết kế), điều này cho phép bạn thay đổi máy chủ DNS một cách nhanh chóng từ giao diện mà không cần quyền root. Xem ví dụ câu hỏi này: unix.stackexchange.com/questions/59414/ triệt
Raghd Hamzeh

19

Ubuntu 12.04 trở đi sử dụng dnsmasq cho bộ đệm cục bộ. Gửi cho nó một SIGHUP (sudo killall -HUP dnsmasq) sẽ đọc lại bộ đệm.

GHI CHÚ
Khi nhận được SIGHUP, dnsmasq xóa bộ đệm của nó và sau đó tải lại / etc / hosts và / etc / ethers và bất kỳ tệp nào được cung cấp bởi --dhcp-hostsfile, --dhcp-optsfile hoặc --addn-hosts. Kịch bản thay đổi hợp đồng thuê dhcp được gọi cho tất cả các hợp đồng thuê DHCP hiện có. Nếu --no-poll được đặt, SIGHUP cũng đọc lại /etc/resolv.conf. SIGHUP KHÔNG đọc lại tệp cấu hình.


Điều này có vẻ hợp lý. mặc dù, tôi phải tìm một vấn đề khác mà tôi từng gặp phải (có liên quan đến các trang web mới trong / etc / hosts và Opera) để kiểm tra điều này và đánh dấu là được chấp nhận thay vì khác: P
igorsantos07

Tốt rồi. Tôi thực sự đã tìm thấy điều này để tìm ra mục nhập dns lưu trữ của riêng tôi. Khi tôi tìm thấy giải pháp mặc dù, tôi cảm thấy tôi nên thêm những phát hiện của mình vào đây. Tôi không biết phiên bản nào Ubuntu bắt đầu sử dụng dnsmasq.
ytjohn

1
Điều này hoạt động và nên thực sự được đánh dấu là câu trả lời!
HDave

1
Nếu các chỉnh sửa thiểu số không bị cấm và cau mày, tôi sẽ sửa SIGUP xóa thành SIGHUP .
James Haigh

@Igoru: Bạn có thể sử dụng digđể kiểm tra xem bộ đệm có thực sự bị xóa hay không. Tôi muốn xóa bộ nhớ cache trên một trong các bộ định tuyến OpenWrt mà tôi đã thử dig @192.168.0.3 nixos.orgnhiều lần (bất kỳ tên miền tồn tại nào cũng được). Trong khi được lưu trữ, nó thường có thời gian truy vấn là 1ms, nhưng sau mỗi lần tôi phát hành killall -HUP dnsmasq(với quyền root) trên bộ định tuyến, tôi nhận được khoảng 27ms sau mỗi lần tôi xóa nó.
James Haigh

13

Hãy thử như sau:

sudo /etc/init.d/dns-clean start

Nó làm việc cho tôi.


1
Tôi đoán mọi thứ đã thay đổi kể từ câu trả lời này, vì có vẻ như điều này sẽ không còn hoạt động nữa vào ngày 14.04. Xin chào Ubuntu, thật tuyệt nếu có một giao diện cho cái này không bị ràng buộc với các chi tiết cụ thể của các hệ thống phân giải tên cụ thể và các phiên bản HĐH (và có thể là các bản phân phối HĐH sau ...).
Croad Lang Sơn

Có hoạt động trong 15.04
Milan Simek

Làm việc trong Ubuntu 14.04.5. Kịch bản này được cung cấp bởi gói pppconfig. Tôi nghĩ rằng nó không được bao gồm theo mặc định trong phân phối.
ssoto

1

Tôi vừa gặp vấn đề này với một trang web mà tôi đã thay đổi DNS và tìm kiếm giải pháp tôi tìm thấy trang này.

Theo kinh nghiệm của tôi, Firefox đôi khi giữ bộ đệm DNS riêng và không xóa nó kịp thời. Vì vậy, nếu bạn đang xem một trang web trong Firefox và tiếp tục thấy trang web cũ, thử Chrome có thể giải quyết vấn đề. Nếu nó hoạt động, bạn có thể xóa bộ nhớ cache trong Firefox. Điều này đã xảy ra trong Ubuntu, tôi không biết điều này cũng xảy ra trên Windows hay OSX.

Tôi chưa cài đặt nscd. Tuy nhiên, tôi nhận thấy rằng trong thiết bị đầu cuối, DNS mới được tìm thấy vài phút sau đó, vì vậy vấn đề đã tự giải quyết.


1

Tùy thuộc vào ngữ cảnh câu hỏi của bạn, bạn cũng có thể cần phải xóa bộ nhớ cache của trình duyệt web.

Trong Firefox, việc này được thực hiện bằng cách: ưu tiên -> quyền riêng tư -> xóa lịch sử gần đây của bạn [chỉ cần đánh dấu vào hộp kiểm "bộ đệm" ở đó]

Trong Chrome: Điều hướng đến chrome: // net-internals / # dns và nhấn nút "Xóa bộ nhớ cache của máy chủ". (xem câu trả lời khác )

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.