/ / Cách xem và xóa bộ nhớ cache DNS trên Linux

Cách xem và xóa bộ nhớ cache DNS trên Linux

Khi bạn truy cập một trang web bằng tên miền của nó, hệ thống của bạn sẽ gửi yêu cầu đến máy chủ DNS để lấy địa chỉ IP cho miền đó. Cặp địa chỉ miền-IP này được lưu trong bộ đệm ẩn DNS để sử dụng sau này, do đó bạn không phải gửi yêu cầu đến máy chủ DNS mỗi lần để tạo kết nối.


Nhưng đôi khi, bộ đệm DNS cục bộ bị hỏng và gây ra lỗi HTTP. May mắn thay, việc xóa và xây dựng lại bộ đệm DNS trên máy tính Linux rất đơn giản. Đây là cách để làm điều đó.


Tại sao lại xóa bộ nhớ cache DNS trên Linux?

Có một số lý do khiến bạn có thể muốn xây dựng lại bộ đệm DNS được lưu trữ trên hệ thống của mình. Có thể bạn có một bản ghi DNS lỗi thời cho một trang web và muốn tìm nạp lại nó từ máy chủ DNS. Hoặc có thể, hệ thống của bạn đã bị xâm phạm và bạn muốn đảm bảo rằng bộ đệm ẩn DNS không bị giả mạo, còn được gọi là giả mạo DNS.

Khi bạn xóa bộ đệm ẩn DNS của mình, hệ thống phải ping lại máy chủ DNS và nhận bản ghi địa chỉ IP miền mới từ đó, xóa mọi dữ liệu lỗi thời hoặc bị xâm phạm trong quy trình.

Cách xem bộ đệm DNS cục bộ trên Linux

Trước systemd, hầu hết các bản phân phối Linux không có bộ nhớ đệm DNS toàn hệ thống, trừ khi một chương trình như dnsmasq hoặc nscd được thiết lập thủ công. systemd đi kèm với systemd-resolved, một dịch vụ phân giải tên miền thành địa chỉ IP và lưu vào bộ đệm các mục nhập DNS.

Các phần sau đây sẽ hướng dẫn bạn cách xem nội dung bộ đệm DNS được tạo bởi systemd-resolved, nscd và dnsmasq, để bạn có thể hiểu dữ liệu được lưu trong bộ đệm trước khi quyết định xóa nó.

Xem DNS Cache để giải quyết systemd

Để xem các bản ghi bộ đệm do systemd phân giải, trước tiên, bạn cần tạm thời tắt dịch vụ, sau đó xuất nhật ký của nó thành một tệp.

Bắt đầu bằng cách gửi tín hiệu SIGUSR1 để tắt dịch vụ được giải quyết bằng systemd:

 sudo killall -USR1 systemd-resolved 

Sử dụng lệnh journalctl và toán tử đầu ra tiêu chuẩn để lưu đầu ra vào tệp văn bản:

 sudo journalctl -u systemd-resolved > ~/cache.txt 

Sau đó, bạn có thể xem nội dung của tệp bằng trình soạn thảo văn bản như Vim:

 vim ~/cache.txt 
xem bộ đệm dns được giải quyết bằng hệ thống

Trong tệp, tìm kiếm “CACHE:” bằng cách nhấn Bỏ trốnđánh máy “/Cache:“, và đánh Đi vào. Tất cả các bản ghi DNS được liệt kê bên dưới BỘ NHỚ: là một phần của bộ đệm DNS cục bộ. Nhấn N để chuyển đến nhóm mục nhập DNS tiếp theo nếu bạn đang sử dụng Vim.

Xem Bộ đệm ẩn DNS cục bộ cho nscd

Để xem bộ đệm cục bộ được tạo bởi nscd, bạn cần đọc nội dung của cơ sở dữ liệu máy chủ nscd bằng lệnh chuỗi.

Trên các bản phân phối dựa trên Debian và Ubuntu, tệp này được đặt tại /var/cache/nscd/hosts. Chạy lệnh sau để xem tệp:

 sudo strings /var/cache/nscd/hosts | uniq 
xem nội dung bộ đệm dns cục bộ nscd

Để xem số liệu thống kê chung về bộ đệm DNS nscd, hãy sử dụng -g lá cờ:

 sudo nscd -g 

Hiển thị bộ đệm DNS được tạo bởi dnsmasq

dnsmasq lưu trữ bộ đệm DNS trong bộ nhớ, vì vậy không dễ để có được các bản ghi chính xác. Nhưng bạn có thể gửi tín hiệu tiêu diệt tới dnsmasq và ghi nhật ký đầu ra của nó để nhận số lượng truy vấn DNS được xử lý.

Để làm như vậy, trước tiên, hãy đảm bảo rằng dnsmasq được bật và chạy bằng cách sử dụng lệnh systemctl:

 sudo systemctl status dnsmasq 

Nếu trạng thái hiển thị Tích cựchãy chạy lệnh sau để tắt dịch vụ:

 sudo pkill -USR1 dnsmasq 

Sử dụng lệnh journalctl, trích xuất nhật ký dnsmasq và lưu chúng vào tệp văn bản:

 sudo journalctl -u dnsmasq > ~/cache.txt 

Cuối cùng, xem nội dung của tệp bằng tiện ích xem tệp như cat hoặc ít hơn:

 cat ~/cache.txt 

Cách xóa bộ nhớ cache DNS trên Linux

Xoá bộ đệm DNS có nghĩa là xóa các bản ghi DNS đã lưu trong bộ đệm khỏi máy tính của bạn. Điều này buộc nó gửi yêu cầu đến máy chủ DNS để truy xuất các mục DNS mới.

Đây là cách bạn có thể xóa bộ đệm DNS trên Linux:

Sử dụng giải quyết systemd

Bạn có thể sử dụng lệnh resolvectl để xóa bộ đệm DNS được lưu trữ bởi systemd-resolved:

 sudo resolvectl flush-caches 

Nếu bạn đang chạy Ubuntu 17.04 hoặc 18.04, hãy sử dụng lệnh systemd-resolved để xóa bộ đệm:

 sudo systemd-resolved --flush-caches 

Xóa bộ đệm DNS nscd trên Linux

Cách thuận tiện nhất để xóa bộ đệm DNS cho nscd là chỉ cần khởi động lại dịch vụ. Bạn có thể làm như vậy bằng cách chạy:

 sudo /etc/init.d/nscd restart 

Nếu cách đó không hiệu quả, trước tiên, hãy kiểm tra xem bộ nhớ cache cục bộ được lưu trữ trên PC của bạn có ổn định không. Bạn có thể dùng -g cờ để xác minh nó:

 sudo nscd -g 

Nếu đúng như vậy, hãy sử dụng -Tôi gắn cờ bằng lệnh nscd để xóa các bản ghi (Tôi viết tắt của vô hiệu hóa):

 sudo nscd -i hosts 

Xóa bộ đệm DNS dnsmasq

Xóa bộ đệm DNS do dnsmasq tạo ra rất đơn giản. Vì bộ nhớ cache được lưu trữ trong bộ nhớ nên việc khởi động lại dịch vụ sẽ xóa tất cả các mục nhập đã lưu trữ.

Để khởi động lại dnsmasq, hãy chạy lệnh systemctl sau:

 sudo systemctl restart dnsmasq 

Hoặc, ra lệnh sau:

 service dnsmasq restart 

Nhập mật khẩu quản trị viên nếu được nhắc. dnsmasq bây giờ sẽ khởi động lại và tất cả các mục nhập DNS hiện tại của bạn sẽ bị xóa khỏi bộ đệm.

Sau khi xóa bộ nhớ cache DNS, tốt nhất bạn nên xem các mục nhập bộ nhớ cache cục bộ và xác minh xem dữ liệu đã được xóa thành công chưa. Bạn có thể sử dụng dig, một trong nhiều lệnh Linux khắc phục sự cố mạng và kiểm tra giá trị Thời gian truy vấn trong đầu ra. Nếu lớn hơn 0 mili giây, bộ đệm đã được xóa thành công (0 mili giây có nghĩa là bản ghi miền vẫn còn trong bộ đệm).

 dig google.com 

Xóa bộ đệm DNS của Google Chrome

Trình duyệt web bạn thường xuyên sử dụng cũng lưu trữ các bản ghi DNS. Khi bạn nhập một URL, hệ thống sẽ tìm kiếm mục nhập bộ nhớ cache trong bộ nhớ cache của trình duyệt cục bộ. Nếu không tìm thấy, nó sẽ kiểm tra các bản ghi trong bộ đệm hệ thống cục bộ. Điều quan trọng là phải xóa bộ nhớ cache DNS của trình duyệt web của bạn vì nó có quyền ưu tiên cao hơn bộ nhớ cache toàn hệ thống.

Để trình diễn, hãy xóa bộ đệm DNS trong Google Chrome. Có nhiều cách để làm điều đó trên các trình duyệt khác, vì vậy tốt nhất bạn nên google cách làm điều đó cho trình duyệt bạn sử dụng.

Để bắt đầu, gõ “chrome://net-internals/#dns” trong thanh URL và nhấn Đi vào:

xóa bộ nhớ cache dns của google chrome

Nhấp chuột Xóa bộ đệm máy chủ để xóa các mục nhập DNS được lưu trữ trong Google Chrome.

Linux là hệ điều hành tốt nhất để học mạng

Thoạt đầu, Linux có vẻ phức tạp, nhưng nếu bạn đầu tư thời gian để tìm hiểu cách thức hoạt động của nó, bạn sẽ nhanh chóng nhận ra nó thật tuyệt vời và thậm chí có thể tốt hơn cả Windows hoặc macOS.

Hầu hết các máy chủ trực tuyến đều chạy Linux và đó là một trong những lý do tại sao Linux là lựa chọn lý tưởng nếu bạn muốn tìm hiểu về mạng hoặc muốn biết cách hoạt động của máy tính nói chung.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *