Flush DNS: Cách Xóa Cache DNS (Windows, Mac, Chrome, Linux)

Bộ Nhớ Đệm DNS Là Gì và Tại Sao Cần Xóa?
Bộ nhớ đệm DNS là cơ sở dữ liệu tạm thời lưu trữ địa chỉ IP của các trang web bạn đã truy cập gần đây. Khi bạn nhập tên miền như example.com, hệ điều hành sẽ kiểm tra bộ nhớ đệm DNS trước khi truy vấn máy chủ DNS bên ngoài. Điều này giúp tăng tốc duyệt web bằng cách tránh các tra cứu DNS lặp đi lặp lại — phản hồi từ bộ nhớ đệm trả về trong dưới 1ms, trong khi một truy vấn DNS mới mất từ 20 đến 120ms.
Vấn đề là bản ghi DNS có thể thay đổi. Một website có thể chuyển sang máy chủ mới, đổi nhà cung cấp hosting, hoặc cập nhật địa chỉ IP. Khi điều đó xảy ra, bản ghi đã lưu trong bộ nhớ đệm trở nên lỗi thời — nó trỏ đến địa chỉ IP cũ có thể không còn hoạt động. Việc xóa bộ nhớ đệm DNS buộc hệ thống loại bỏ tất cả bản ghi đã lưu và lấy bản ghi mới từ máy chủ DNS.
Bộ nhớ đệm DNS tồn tại ở nhiều cấp độ: hệ điều hành, trình duyệt, và đôi khi là router. Để xóa hoàn toàn các bản ghi lỗi thời, bạn có thể cần xóa bộ nhớ đệm ở nhiều cấp độ khác nhau.
Cách Hoạt Động Của Bộ Nhớ Đệm DNS: TTL, Các Cấp Độ và Hết Hạn
Hiểu cách hoạt động của bộ nhớ đệm DNS giúp bạn biết khi nào thực sự cần xóa và khi nào là không cần thiết.
Mỗi bản ghi DNS đều có giá trị TTL (Time to Live) do chủ sở hữu tên miền thiết lập. TTL cho hệ thống biết giữ bản ghi đã lưu trong bao nhiêu giây trước khi loại bỏ. Các giá trị TTL phổ biến dao động từ 300 giây (5 phút) cho các bản ghi hay thay đổi đến 86.400 giây (24 giờ) cho các bản ghi ổn định như MX hoặc TXT.
Bộ nhớ đệm DNS xảy ra ở bốn lớp riêng biệt, mỗi lớp có bộ nhớ đệm riêng:
Bộ nhớ đệm trình duyệt — Chrome, Firefox và Edge đều duy trì bộ nhớ đệm DNS riêng với tối đa khoảng 1.000 mục. Bộ nhớ đệm của Chrome có TTL mặc định là 60 giây, bất kể TTL thực tế của bản ghi DNS
Bộ nhớ đệm hệ điều hành — Dịch vụ DNS Client trên Windows lưu tối đa 1.000 mục theo mặc định. macOS dùng mDNSResponder, Linux dùng systemd-resolved (nếu được bật). Bộ nhớ đệm hệ điều hành tuân theo TTL do máy chủ DNS thiết lập
Bộ nhớ đệm router — Hầu hết router gia đình đều lưu các phản hồi DNS cho tất cả thiết bị trong mạng. Kích thước bộ nhớ đệm khác nhau tùy theo dòng router nhưng thường chứa 500 đến 1.000 mục
Bộ nhớ đệm resolver của ISP — Resolver DNS của nhà mạng lưu các bản ghi cho tất cả người dùng của mình. Đây là bộ nhớ đệm lớn nhất và bạn không thể tự xóa — chỉ có thể chờ TTL hết hạn
Khi bạn flush DNS, bạn xóa các lớp trình duyệt và hệ điều hành. Bạn không thể xóa resolver của ISP, nhưng có thể bỏ qua nó bằng cách chuyển sang máy chủ DNS công cộng như Cloudflare (1.1.1.1) hoặc Google (8.8.8.8). Trong khi duyệt web bình thường, tỷ lệ trúng cache DNS của bạn thường đạt 80-90%, nghĩa là phần lớn tra cứu được phục vụ ngay từ bộ nhớ đệm mà không cần truy vấn máy chủ DNS.
Khi Nào Nên Xóa Bộ Nhớ Đệm DNS?
Bạn không cần xóa bộ nhớ đệm DNS thường xuyên — hệ điều hành tự động xử lý việc hết hạn bộ nhớ đệm dựa trên giá trị TTL (Time to Live) do chủ sở hữu tên miền thiết lập. Tuy nhiên, có những tình huống cụ thể mà việc xóa thủ công sẽ giải quyết được vấn đề thực tế:
Website không tải được — Bạn thấy lỗi như DNS_PROBE_FINISHED_NXDOMAIN hoặc DNS server not responding dù trang web hoạt động bình thường với người khác
Thấy phiên bản cũ của website — Trang web vừa chuyển sang máy chủ mới, nhưng bạn vẫn thấy phiên bản cũ
Đã thay đổi cài đặt DNS — Bạn chuyển từ DNS của nhà mạng sang Google DNS (8.8.8.8) hoặc Cloudflare (1.1.1.1) và muốn thay đổi có hiệu lực ngay lập tức
Lỗi chứng chỉ SSL — Bạn thấy cảnh báo kết nối không riêng tư sau khi trang web gia hạn chứng chỉ
Truyền bá DNS — Bạn đã cập nhật bản ghi DNS (A, CNAME, MX) và muốn xem thay đổi ngay thay vì chờ TTL hết hạn. Dùng DNS Propagation Checker để kiểm tra xem thay đổi đã lan ra toàn cầu chưa
Lo ngại bảo mật — Bạn nghi ngờ bộ nhớ đệm DNS bị nhiễm độc hoặc đã truy cập một trang web bị xâm phạm
Cách Xóa Bộ Nhớ Đệm DNS trên Windows 10 và Windows 11
Windows cung cấp hai phương thức để flush DNS: Command Prompt và PowerShell. Cả hai đều thực hiện cùng một việc — xóa bộ nhớ đệm của dịch vụ Windows DNS Client. Các lệnh hoạt động trên Windows 10, Windows 11, Windows Server và các phiên bản cũ hơn.
Phương Thức 1: Dùng Command Prompt
Bước 1 — Nhấn
Windows + Sđể mở tìm kiếm, gõcmd, sau đó nhấp chuột phải vào Command Prompt và chọn Run as administratorBước 2 — Nhập lệnh sau và nhấn Enter:
Bước 3 — Bạn sẽ thấy thông báo: "Successfully flushed the DNS Resolver Cache."
ipconfig /flushdnsChỉ vậy thôi. Bộ nhớ đệm DNS trên Windows của bạn hiện đã trống, và lần tiếp theo bạn truy cập một trang web, Windows sẽ truy vấn máy chủ DNS đã cấu hình để lấy địa chỉ IP mới. Lệnh ipconfig là tiện ích mạng chuẩn của Windows — /flushdns chỉ là một trong nhiều tùy chọn của nó.
Phương Thức 2: Dùng PowerShell
PowerShell có lệnh DNS riêng cung cấp cùng chức năng với các tùy chọn bổ sung:
# Flush the DNS cache
Clear-DnsClientCache
# Verify the cache is empty (should return very few entries)
Get-DnsClientCache
# View DNS cache statistics
Get-DnsClientCache | Measure-Object | Select-Object CountClear-DnsClientCache thực hiện chính xác điều tương tự như ipconfig /flushdns. Ưu điểm của PowerShell là lệnh Get-DnsClientCache, hiển thị các mục đã lưu dưới dạng bảng dễ lọc và xuất dữ liệu hơn so với ipconfig /displaydns.
Cách Xóa Bộ Nhớ Đệm DNS trên macOS (Sequoia, Sonoma, Ventura)
Trên macOS, việc xóa bộ nhớ đệm DNS yêu cầu một lệnh Terminal. Lệnh tương tự hoạt động trên macOS Sequoia (15), Sonoma (14), Ventura (13) và Monterey (12).
| Phiên Bản macOS | Lệnh Xóa DNS Cache |
|---|---|
| Sequoia (15) / Sonoma (14) / Ventura (13) / Monterey (12) | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder |
| Big Sur (11) / Catalina (10.15) / Mojave (10.14) | sudo killall -HUP mDNSResponder |
| El Capitan (10.11) / Sierra (10.12) / High Sierra (10.13) | sudo killall -HUP mDNSResponder |
| Yosemite (10.10) | sudo discoveryutil mdnsflushcache; sudo discoveryutil udnsflushcaches |
| Lion (10.7) đến Mavericks (10.9) | sudo killall -HUP mDNSResponder |
Bước 1 — Nhấn
Command + Spaceđể mở Spotlight, gõ Terminal và nhấn EnterBước 2 — Dán lệnh sau vào Terminal và nhấn Enter:
Bước 3 — Nhập mật khẩu Mac khi được yêu cầu. Terminal sẽ không hiển thị kết quả nào, nhưng bộ nhớ đệm DNS đã được xóa
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderLệnh này thực hiện hai việc: dscacheutil -flushcache xóa bộ nhớ đệm dịch vụ thư mục, và killall -HUP mDNSResponder gửi tín hiệu hangup để khởi động lại tiến trình DNS resolver của macOS (mDNSResponder). Cả hai đều cần thiết để xóa hoàn toàn — chạy chỉ một lệnh có thể để lại các mục lỗi thời trong bộ nhớ đệm còn lại.
Cách Xóa Bộ Nhớ Đệm DNS trên Linux (Ubuntu, Debian, Fedora)
Linux xử lý bộ nhớ đệm DNS khác nhau tùy thuộc vào bản phân phối và dịch vụ DNS đang chạy. Hầu hết các bản phân phối Linux hiện đại (Ubuntu 22.04+, Fedora 33+, Arch) sử dụng systemd-resolved làm DNS resolver mặc định.
Bước 1 — Mở Terminal bằng tổ hợp phím
Ctrl + Alt + TBước 2 — Chạy lệnh flush tương ứng với dịch vụ DNS của bạn (xem bên dưới)
Bước 3 — Xác nhận bộ nhớ đệm đã được xóa bằng cách chạy lệnh thống kê
# Ubuntu 22.04+ / Fedora / Arch (systemd-resolved)
sudo resolvectl flush-caches
# Verify it worked — cache sizes should show 0
sudo resolvectl statistics
# Ubuntu 20.04 and older
sudo systemd-resolve --flush-caches
# If using dnsmasq
sudo systemctl restart dnsmasq
# If using nscd
sudo systemctl restart nscdKhông chắc bạn đang dùng dịch vụ DNS nào? Hãy dùng sudo resolvectl status trên các bản phân phối dùng systemd. Nếu lệnh trả về cấu hình DNS của bạn, bạn đang dùng systemd-resolved. Nếu lệnh không tìm thấy, hãy kiểm tra dnsmasq hoặc nscd bằng systemctl status dnsmasq hoặc systemctl status nscd.
Cách Xóa Bộ Nhớ Đệm DNS trong Google Chrome
Google Chrome duy trì bộ nhớ đệm DNS nội bộ riêng, tách biệt với bộ nhớ đệm của hệ điều hành. Chrome lưu tối đa 1.000 mục DNS với TTL cố định là 60 giây. Ngay cả sau khi xóa bộ nhớ đệm DNS của hệ điều hành, Chrome có thể vẫn sử dụng các bản ghi đã lưu cũ. Đây là cách xóa chúng:
Bước 1 — Mở một tab mới trong Chrome
Bước 2 — Nhập
chrome://net-internals/#dnsvào thanh địa chỉ và nhấn EnterBước 3 — Nhấn vào nút Clear host cache
Bước 4 — (Tùy chọn) Cũng truy cập
chrome://net-internals/#socketsvà nhấn Flush socket pools để đóng các kết nối TCP cũ vẫn có thể đang dùng địa chỉ IP cũ
Để làm mới hoàn toàn, hãy xóa cả bộ nhớ đệm DNS của hệ điều hành lẫn bộ nhớ đệm nội bộ của Chrome. Bộ nhớ đệm DNS của Chrome được tự động xây dựng lại khi bạn duyệt web, vì vậy việc xóa không ảnh hưởng lâu dài đến hiệu suất.
Cách Xóa Bộ Nhớ Đệm DNS trong Firefox, Edge và Safari
Mỗi trình duyệt lớn đều có bộ nhớ đệm DNS riêng. Đây là cách xóa trong từng trình duyệt:
| Trình Duyệt | Cách Xóa Bộ Nhớ Đệm DNS |
|---|---|
| Microsoft Edge | Nhập `edge://net-internals/#dns` vào thanh địa chỉ → Nhấn **Clear host cache**. Cũng flush socket tại `edge://net-internals/#sockets` |
| Firefox | Nhập `about:networking#dns` vào thanh địa chỉ → Nhấn **Clear DNS Cache**. Firefox mặc định lưu các mục DNS trong 60 giây |
| Safari (Mac) | Vào menu Safari → **Develop** → **Empty Caches**. Nếu menu Develop không hiển thị, hãy bật nó trong Safari → Settings → Advanced → Show Develop menu |
| Brave / Opera / Vivaldi | Giống Chrome: `chrome://net-internals/#dns` → **Clear host cache** (tất cả các trình duyệt dựa trên Chromium đều dùng cùng phương pháp) |
Cách Xóa Bộ Nhớ Đệm DNS trên Router
Router gia đình của bạn cũng lưu các phản hồi DNS cho tất cả thiết bị trong mạng. Nếu bạn đã xóa bộ nhớ đệm DNS trên máy tính và trình duyệt nhưng vẫn thấy bản ghi cũ, thì bộ nhớ đệm của router có thể là thủ phạm.
Hầu hết router thông thường không có lệnh flush DNS chuyên dụng. Cách đơn giản nhất để xóa bộ nhớ đệm DNS của router là khởi động lại nó:
Bước 1 — Rút dây nguồn của router (không nhấn nút reset — thao tác đó sẽ đặt lại router về cài đặt gốc)
Bước 2 — Chờ 30 giây. Điều này đảm bảo bộ nhớ tạm thời (RAM) của router được xóa hoàn toàn, bao gồm tất cả mục DNS đã lưu
Bước 3 — Cắm lại dây nguồn và chờ 1-2 phút để router khởi động hoàn toàn
Bước 4 — Kết nối lại Wi-Fi nếu cần và kiểm tra xem sự cố đã được giải quyết chưa
Một số router cao cấp (Ubiquiti, pfSense, MikroTik) có quyền truy cập CLI để bạn có thể flush DNS trực tiếp. Nếu router chạy dnsmasq, bạn có thể SSH vào và chạy sudo systemctl restart dnsmasq để chỉ xóa bộ nhớ đệm DNS mà không cần khởi động lại toàn bộ router.
Đối với các sự cố DNS kéo dài, hãy cân nhắc thay đổi cài đặt DNS của router sang Cloudflare (1.1.1.1) hoặc Google (8.8.8.8) — điều này áp dụng DNS nhanh hơn cho tất cả thiết bị trong mạng mà không cần cấu hình từng thiết bị một. Xem hướng dẫn khắc phục DNS chậm để biết hướng dẫn chi tiết.
Cách Xác Nhận Bộ Nhớ Đệm DNS Đã Được Xóa
Sau khi xóa, bạn nên xác nhận bộ nhớ đệm thực sự đã trống. Đây là các lệnh kiểm tra cho từng nền tảng:
# Windows — should return empty or very few entries
ipconfig /displaydns
# Windows PowerShell — count remaining entries
Get-DnsClientCache | Measure-Object | Select-Object Count
# macOS — send INFO signal to mDNSResponder
sudo killall -INFO mDNSResponder
# Then open Console.app and filter for mDNSResponder to see cache stats
# Linux (systemd-resolved) — cache sizes should show 0
sudo resolvectl statisticsBạn cũng có thể kiểm tra bằng cách truy cập một trang web trước đây không tải được. Nếu trang web tải thành công sau khi xóa bộ nhớ đệm, thì bộ nhớ đệm DNS lỗi thời chính là nguyên nhân. Hãy dùng công cụ DNS Lookup của DNS Robot để so sánh bản ghi DNS mà hệ thống của bạn phân giải với những gì các máy chủ DNS có thẩm quyền báo cáo.
Để kiểm tra kỹ hơn, hãy chạy DNS Propagation Checker cho tên miền đó. Công cụ này truy vấn máy chủ DNS tại hơn 30 quốc gia, giúp bạn xác nhận sự cố là cục bộ (bộ nhớ đệm của bạn) hay toàn cầu (bản ghi DNS chưa được cập nhật).
Phải Làm Gì Nếu Xóa DNS Vẫn Không Khắc Phục Được Vấn Đề?
Việc flush DNS chỉ giải quyết các vấn đề liên quan đến bộ nhớ đệm, không phải tất cả sự cố DNS đều do bản ghi lỗi thời gây ra. Nếu sự cố vẫn còn sau khi đã xóa ở mọi cấp độ (hệ điều hành + trình duyệt + router), hãy thử các bước sau:
Chuyển máy chủ DNS — DNS của ISP có thể bị lỗi hoặc trả về bản ghi sai. Chuyển sang Cloudflare (1.1.1.1) hoặc Google (8.8.8.8). Xem hướng dẫn khắc phục DNS chậm để biết hướng dẫn từng bước
Kiểm tra xem trang web có thực sự bị lỗi không — Dùng công cụ Ping của DNS Robot để kiểm tra xem máy chủ có phản hồi không. Nếu ping thất bại từ nhiều vị trí, trang web đang bị lỗi — không phải vấn đề DNS
Xác minh bản ghi DNS — Dùng DNS Lookup để kiểm tra các bản ghi A, AAAA và CNAME của tên miền. Nếu bản ghi trỏ đến IP sai, chủ tên miền cần sửa chữa chúng
Tắt VPN hoặc proxy — VPN định tuyến các truy vấn DNS qua máy chủ riêng của họ, có thể lưu các bản ghi khác nhau hoặc chặn một số tên miền. Ngắt kết nối và kiểm tra lại
Kiểm tra tệp hosts — Tệp hosts trên máy tính ghi đè DNS cho các tên miền cụ thể. Trên Windows, kiểm tra
C:\Windows\System32\drivers\etc\hosts. Trên macOS/Linux, kiểm tra/etc/hosts. Xóa mọi mục cho tên miền bị ảnh hưởngChờ truyền bá — Nếu bản ghi DNS vừa được thay đổi, có thể mất đến 48 giờ để tất cả máy chủ DNS trên thế giới cập nhật. Dùng DNS Propagation Checker để theo dõi tiến trình
Kiểm tra bản ghi DNS của bạn ngay
Sử dụng công cụ DNS Lookup miễn phí của DNS Robot để xác minh bản ghi DNS cho bất kỳ tên miền nào. So sánh kết quả phân giải của hệ thống cục bộ với các máy chủ DNS có thẩm quyền trên toàn thế giới.
Try DNS LookupFrequently Asked Questions
Xóa bộ nhớ đệm DNS sẽ xóa các ánh xạ tên miền sang địa chỉ IP đã được lưu trên máy tính. Sau khi xóa, hệ thống sẽ lấy bản ghi DNS mới từ máy chủ DNS trong lần truy cập trang web tiếp theo, thay vì sử dụng dữ liệu đã lưu có thể đã lỗi thời.