Cách xóa DNS trong Linux

[ad_1]

Sửa máy tính tại nhà TPHCM

fatmawati achmad zaenuri/Shutterstock.com

Bạn có thể xóa bộ đệm ẩn DNS trên máy tính Linux dựa trên systemd bằng lệnh “resolvectl flush-caches”. Nếu bạn sử dụng dnsmasq, thay vào đó, bạn có thể xóa DNS bằng cách sử dụng “sudo killall -HUP dnsmasq”.

Trải nghiệm duyệt internet của bạn có bị chậm trên thiết bị Linux hay các trang web bạn đang truy cập đã lỗi thời hoặc hoàn toàn là trang web sai? Hãy thảo luận về việc xóa bộ đệm DNS trên Linux và cách biết liệu bạn có thực sự cần hay không.

Bộ đệm DNS là gì?

Dịch vụ tên miền là một chút ma thuật chuyển đổi tên thành số. Nó lấy tên mạng của thiết bị và tên trang web rồi tra cứu địa chỉ IP của chúng. Sau đó, mạng có thể sử dụng địa chỉ IP để định tuyến chính xác lưu lượng truy cập đến các thiết bị hoặc trang web đó.

Những tra cứu này, được gọi là yêu cầu, không xảy ra ngay lập tức. Có một khoảng thời gian nhỏ, hữu hạn liên quan. Yêu cầu Internet DNS có thể yêu cầu truy vấn máy chủ DNS tiền thân, máy chủ tên gốc, máy chủ miền cấp cao nhất và máy chủ tên có thẩm quyền. Các yêu cầu DNS rất nhanh, nhưng để làm cho chúng nhanh hơn nữa, các câu trả lời cho các yêu cầu DNS gần đây được lưu vào bộ đệm trên các máy chủ tiền thân của DNS.

Nếu câu trả lời cho yêu cầu DNS được tìm thấy trong bộ đệm của máy chủ tiền thân, thì không cần liên hệ với máy chủ nào nữa. Câu trả lời được gửi lại từ bộ đệm của máy chủ tiền thân. Tương tự, một bộ đệm nhỏ được duy trì bởi bộ định tuyến băng thông rộng của bạn ở nhà. Nếu bạn yêu cầu một thiết bị mạng cục bộ sử dụng tên thiết bị mạng của nó, thì bộ định tuyến của bạn sẽ cung cấp địa chỉ IP. Nó cũng có thể lưu trữ các phản hồi mà nó đã nhận được từ các máy chủ DNS bên ngoài.

Thông thường, các mạng và máy tính Linux được định cấu hình để sử dụng các dịch vụ DNS bên ngoài, do Nhà cung cấp dịch vụ Internet của bạn cung cấp hoặc bởi một dịch vụ miễn phí như OpenDNS hoặc Google DNS. Có nhiều lý do chính đáng khiến một số người chạy máy chủ DNS của riêng họ, nhưng hầu hết chúng ta thì không. Tuy nhiên, máy tính Linux của bạn—ngay cả khi nó không chạy máy chủ DNS—có thể tùy chọn lưu trữ các kết quả yêu cầu DNS vào bộ đệm ẩn.

Rắc rối với việc sử dụng dữ liệu được lưu trong bộ nhớ cache là toàn bộ điều này được xác định dựa trên giả định rằng không có chi tiết nào được lưu trong bộ nhớ cache thay đổi kể từ khi chúng được lưu vào bộ nhớ cache. Nếu các chi tiết đã thay đổi, thông tin bạn nhận được sẽ lỗi thời.

Nếu một mục bộ đệm hoặc toàn bộ bộ đệm bị hỏng, bạn sẽ nhận được hiệu suất không ổn định ở mức cao nhất và lỗ hổng bảo mật ở mức tồi tệ nhất. Đó là khi bạn muốn xem xét “xóa” hoặc xóa bộ đệm DNS.

Máy tính của bạn có đang sử dụng bộ đệm ẩn DNS cục bộ không?

Một số máy tính thử nghiệm của chúng tôi đã bật bộ đệm DNS cục bộ và những máy tính khác đã tắt nó. Nó đã tắt trên máy tính Manjaro 21 của chúng tôi, nhưng nó đã được bật theo mặc định trên Fedora 37 và Ubuntu 22.10.

Để xác định xem máy tính Linux của bạn có lưu trữ các yêu cầu DNS hay không, hãy sử dụng is-active tùy chọn của systemctl yêu cầu. Trình nền quản lý bộ đệm DNS là trình quản lý phân giải tên mạng systemd, được gọi là systemd-resolved.

systemctl is-active systemd-resolved

Sử dụng lệnh systemctl để kiểm tra xem bộ nhớ đệm DNS có hoạt động không

Nếu phản hồi là “đang hoạt động”, bộ nhớ đệm DNS đang diễn ra. Nếu phản hồi là “không hoạt động”, thì không phải vậy. Trên máy tính cụ thể này, nó đang hoạt động. Chúng ta có thể sử dụng resolvectl lệnh với tùy chọn thống kê để xem có bao nhiêu bản ghi trong bộ đệm.

resolvectl statistics

sử dụng lệnh resolvectl để xem thống kê bộ nhớ đệm DNS

Chúng ta có thể thấy có 330 mục trong bộ đệm DNS của máy tính này.

CÓ LIÊN QUAN: Cách giết các tiến trình từ thiết bị đầu cuối Linux

Xem lại bộ đệm ẩn DNS của bạn

Việc xem lại các mục trong bộ đệm DNS không phải là điều kiện tiên quyết để xóa bộ đệm và nếu bạn không muốn làm như vậy, bạn có thể bỏ qua toàn bộ bước này. Tuy nhiên, đôi khi nó có thể mang tính thông tin. Bạn có thể thấy các mục bị xáo trộn cho biết bị hỏng hoặc bạn có thể thấy các thông báo lỗi liên quan đến các sự cố xử lý thiết bị trên mạng của mình.

Hiện tại, không có cách nào đơn giản để xem các mục nhập này. Chúng ta có thể làm được nhưng cần sáng tạo một chút. USR1hoặc tín hiệu do người dùng định nghĩa số mộtlà một tín hiệu có thể được gửi bởi killkillall mệnh lệnh. Tín hiệu này không có ý nghĩa được xác định trước. Các ứng dụng có thể tự do bỏ qua tín hiệu này hoặc phản ứng theo bất kỳ cách nào mà các nhà phát triển đã triển khai.

Các systemd-resolved daemon phản ứng với USR1 bằng cách ghi bộ đệm của nó vào nhật ký hệ thống. Sau đó chúng ta có thể sử dụng journalctl lệnh để lọc ra các mục DNS.

Chúng tôi sẽ sử dụng killall lệnh với USR1 Để gửi tín hiệu đến systemd-resolved yêu tinh. Lưu ý rằng mặc dù chúng tôi đang sử dụng killall mệnh lệnh, các systemd-resolved daemon tiếp tục chạy. Đây không phải là tín hiệu kết thúc mà chúng tôi đang gửi đi.

sudo killall -USR1 systemd-resolved

Gửi tín hiệu USR1 đến trình nền được phân giải systemd

Bây giờ chúng ta sẽ sử dụng journalctl lệnh với -u (lọc bởi systemd đơn vị) để trích xuất các mục nhật ký đã được tạo bởi systemd-resolved . Chúng tôi sẽ chuyển hướng đầu ra đó thành một tệp văn bản có tên là “dns.txt”.

sudo journalctl -u systemd-resolved > dns.txt

Lọc các mục nhật ký được giải quyết bằng hệ thống và gửi chúng vào một tệp

Chúng tôi sẽ sử dụng less trình xem tệp để xem nội dung của tệp.

less dns.txt

Bạn sẽ có thể tìm thấy các ánh xạ được lưu trong bộ nhớ đệm giữa các tên miền và địa chỉ IP bằng cách cuộn và tìm kiếm trong văn bản.

Chúng ta có thể thấy một mục dành cho Google có địa chỉ IP là 216.58.212.196. Bạn có thể kiểm tra điều đó bằng cách đặt địa chỉ IP trong trình duyệt web. Bạn sẽ thấy trang chủ của tìm kiếm Google.

Cách xóa bộ đệm DNS trên Linux

Xoá bộ nhớ cache sẽ xóa tất cả các mục nhập và bắt đầu lại quá trình thu thập. Nếu có, thao tác này sẽ buộc xóa các mục không chính xác và bị hỏng khỏi bộ đệm.

Lệnh rất đơn giản; chúng tôi sử dụng resolvectl với flush-caches quyền mua.

resolvectl flush-caches

Xóa bộ đệm DNS bằng lệnh resolvectl

Chúng tôi âm thầm quay trở lại dòng lệnh. Để xác nhận rằng điều gì đó đã thực sự xảy ra, chúng tôi sẽ kiểm tra lại số liệu thống kê bộ đệm DNS.

resolvectl statistics

Thống kê bộ đệm cho thấy kích thước bộ đệm đã được giảm xuống 0

Chúng ta có thể thấy rằng kích thước bộ đệm được giảm xuống bằng không. Nó sẽ tăng theo thời gian khi nó tích lũy các mục mới.

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

Các dnsmasq ứng dụng cung cấp bộ đệm DNS và máy chủ DHCP. Nó phổ biến với những người dùng muốn chạy máy chủ DNS của riêng họ, đặc biệt là trên các bản cài đặt không phải hệ thống.

tuôn ra các dnsmasq Bộ đệm DNS rất dễ dàng. Chúng tôi cần gửi SIGHUP tín hiệu cho biết dnsmasq daemon để khởi tạo lại hiệu quả. Làm như vậy sẽ xóa bộ đệm DNS của nó. Để gửi tín hiệu, chúng tôi sử dụng killall lệnh với -HUP cờ và tên của ứng dụng.

sudo killall -HUP dnsmasq

Xóa bộ đệm DNS của ứng dụng dnsmasq

Rực Rỡ, Với Thành Công

Tất nhiên, nếu máy tính của bạn hoàn toàn không lưu vào bộ nhớ đệm thì bạn không cần kiểm tra gì cả.

Nếu nó đang lưu các yêu cầu DNS vào bộ đệm nhưng mọi thứ vẫn hoạt động tốt, bạn cũng có thể bỏ qua nó. Nhưng nếu bạn đang gặp phải tình trạng cập nhật trang web chậm hoặc không thường xuyên khi duyệt web hoặc nhìn thấy các trang web không đúng, thì có lẽ đây là thời điểm tốt để xóa bộ đệm ẩn DNS của bạn.

dịch vụ cài win online từ xa

[ad_2]