Tóm tắt nội dung
DNS Cache trên Linux là gì?
Khi bạn truy cập một trang web, Linux sẽ lưu tạm địa chỉ IP tương ứng với tên miền đó trong bộ nhớ gọi là DNS cache. Điều này giúp tăng tốc độ tải trang lần sau. Nhưng nếu địa chỉ IP của trang web thay đổi hoặc có sự cố DNS, hệ thống có thể dùng nhầm thông tin cũ, dẫn đến lỗi truy cập.
Để xử lý, bạn nên xóa (flush) DNS cache, giúp hệ thống bắt buộc phải hỏi lại thông tin mới từ DNS server và hoạt động ổn định hơn.
Kiểm tra hệ thống đang dùng gì để xử lý DNS
Trước khi xóa cache, bạn nên xác định xem hệ thống đang dùng công cụ nào để phân giải DNS – ví dụ systemd-resolved
, dnsmasq
, nscd
...
Dùng lệnh sau để kiểm tra tiến trình đang chiếm cổng 53 (cổng mặc định của DNS):
Nếu bạn thấy xuất hiện dòng chứa systemd-resolved
, thì bạn có thể áp dụng các cách xóa cache phù hợp với systemd.
Cách 1: Dùng resolvectl
(cho hệ thống sử dụng systemd)
Đây là cách chính thức và dễ nhất để xóa DNS cache trên các bản Linux hiện đại.
Bước 1: Chạy lệnh xóa cache
Bước 2: Kiểm tra dịch vụ DNS
Sau khi xóa xong, bạn có thể kiểm tra trạng thái hoạt động của systemd-resolved:
Cách 2: Gửi tín hiệu USR2 đến tiến trình DNS
Nếu bạn không muốn khởi động lại dịch vụ, có thể dùng tín hiệu USR2 để yêu cầu làm mới cache.
Sau đó, kiểm tra lại log để xác minh cache đã được làm mới:
Cách 3: Khởi động lại dịch vụ systemd-resolved
Đây là cách “mạnh tay” hơn, đảm bảo cache được xóa hoàn toàn.
Sau khi restart xong, hãy thử truy cập lại trang web gặp lỗi để kiểm tra kết quả.
Xóa DNS cache của Chrome (trình duyệt)
Ngay cả khi bạn đã xóa DNS cache trên hệ điều hành, Google Chrome vẫn có thể giữ cache riêng và gây ra lỗi. Hãy xóa luôn DNS cache trong Chrome như sau:
-
Mở Chrome và truy cập:
-
Nhấn nút "Clear host cache" để xóa toàn bộ DNS cache của trình duyệt.
Kiểm tra cache DNS đã được xóa chưa
Cách 1: Kiểm tra trạng thái dịch vụ
Dịch vụ vẫn đang chạy ổn định sau khi xóa cache là dấu hiệu tốt.
Cách 2: Dùng nslookup
để kiểm tra phân giải tên miền
Nếu kết quả trả về đúng và nhanh, nghĩa là DNS cache đã được làm mới thành công.
Một số lỗi thường gặp & cách xử lý
-
Vẫn không phân giải được tên miền:
-
Dùng bản Linux cũ: Nếu không hỗ trợ resolvectl
, bạn có thể cài nscd
rồi chạy: