Cách xóa bộ đệm ẩn DNS trong OS X Yosemite bằng khám phá
Mục lục:
- Xóa bộ nhớ cache DNS trong OS X Yosemite 10.10.4 & OS X 10.10.5
- Xóa bộ đệm ẩn DNS trong OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)
Một số người dùng Mac có thể gặp phải tình huống họ cần xóa bộ nhớ đệm DNS trong OS X để máy chủ định danh phân giải đúng cách hoặc để máy tính cá nhân của họ nhận thấy một số thay đổi địa chỉ DNS. Điều này đặc biệt phù hợp với quản trị viên hệ thống, quản trị viên mạng và nhà phát triển web, nhưng chắc chắn có những tình huống mà những người dùng khác cũng có thể cần phải kết xuất và đặt lại bộ đệm ẩn DNS, chẳng hạn như nếu người dùng đã sửa đổi tệp /etc/hosts và họ cần thay đổi có hiệu lực mà không cần khởi động lại máy Mac.
Người dùng Mac lâu năm sẽ biết rằng việc đặt lại bộ đệm ẩn DNS đã thay đổi trong hầu hết mọi phiên bản của Mac OS X và OS X Yosemite cũng không khác, có thể là do phát hiện thay thế mDNSResponder, rồi chuyển trở lại mDNSResponder lần nữa. Bất chấp điều đó, việc xóa bộ đệm DNS trong Yosemite vẫn là một lệnh đầu cuối, nhưng nó hơi khác một chút tùy thuộc vào bản phát hành chính xác mà bạn đang sử dụng HĐH và nó thực sự cho phép bạn xóa DNS Multicast hoặc DNS Unicast hoặc cả hai. Có thể bạn sẽ muốn xóa cả hai để có biện pháp tốt nếu bạn đang cố đặt lại tất cả bộ đệm DNS trên máy Mac.
Xóa bộ nhớ cache DNS trong OS X Yosemite 10.10.4 & OS X 10.10.5
Từ OS X 10.10.4 trở đi lên 10.10.5, bao gồm cả 10.11, Apple đã bỏ Discoveryd và thay thế nó (hay đúng hơn là hoàn nguyên về) mDNSResponder. Do đó, để xóa bộ đệm DNS trong OS X Yosemite 10.10.4 và 10.11 El Capitan và có lẽ trở đi, chuỗi lệnh như sau:
sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder;nói bộ nhớ cache bị xóa
Lệnh đó sẽ xóa tất cả bộ đệm DNS cho OS X 10.10.4+.
Người dùng Mac lâu năm có thể nhớ rằng chuỗi lệnh về cơ bản là những gì hoạt động trong bản phát hành trước Yosemite. Như đã nói, các phiên bản trước của OS X Yosemite trước ngày 10.10.4 sẽ sử dụng một chuỗi lệnh khác được thảo luận bên dưới.
Xóa bộ đệm ẩn DNS trong OS X Yosemite (10.10, 10.10.1, 10.10.2, 10.10.3)
Bạn sẽ cần sử dụng Terminal để đặt lại bộ đệm ẩn, bạn có thể tìm thấy ứng dụng Terminal trong /Applications/Utilities/ hoặc khởi chạy ứng dụng này bằng Spotlight. Để xóa hoàn toàn tất cả bộ đệm DNS trong phiên bản OS X mới nhất, hãy nhắm mục tiêu cả MDNS (DNS Multicast) và UDNS (DNS Unicast) bằng hai lệnh khác nhau.
Clear MDNS Cache
sudo Discoveryutil mdnsflushcache
Nhấn quay lại và nhập mật khẩu quản trị viên khi được yêu cầu.
Clear UDNS Cache
sudo Discoveryutil udnsflushcaches
Một lần nữa, nhấn quay lại và nhập mật khẩu quản trị viên khi được yêu cầu. Lưu ý rằng bộ đệm là số nhiều với lệnh sau, một sự khác biệt nhỏ nhưng quan trọng về cú pháp.
Xóa và Đặt lại Tất cả Bộ đệm DNS trong OS X Yosemite
Bạn cũng có thể xâu chuỗi hai lệnh trên lại với nhau nếu muốn, lệnh sau thậm chí sẽ thông báo bằng lời khi bộ nhớ đệm đã bị xóa:
sudo Discoveryutil mdnsflushcache;Sudo Discoveryutil udnsflushcaches;say flushed
Quả thật, bộ đệm ẩn MDNS và UDNS khác nhau, nhưng tôi nhận thấy rằng để thực sự xóa bộ đệm ẩn DNS chức năng trong OS X Yosemite, cả hai lệnh đều cần thiết. Hoàn toàn có thể là bạn chỉ cần xóa cái này hay cái kia cho nhu cầu của mình.
Đối với những người thắc mắc, OS X Yosemite đã loại bỏ mDNSResponder, vì vậy không cần phải hủy quá trình mDNSResponder đó để làm mới bộ đệm ẩn DNS như trong các phiên bản trước của Mac OS X.
Kiểm tra chi tiết bộ đệm DNS trong OS X Yosemite
Nếu bạn đang thay đổi hoặc sắp thay đổi DNS và muốn xem một số chi tiết về nội dung hiện đang được lưu trong bộ đệm ẩn, bạn có thể sử dụng các lệnh sau:
Nhận thống kê bộ đệm UDNS:
sudo Discoveryutil udnscachestats
Bạn cũng có thể truy xuất thông tin cụ thể về bộ đệm DNS phát đa hướng bằng cách sau:
sudo Discoveryutil mdnscachests
Cả hai điều này sẽ cung cấp thông tin chi tiết về số lượng mục nhập DNS được lưu trong bộ nhớ cache, cung cấp một báo cáo có dạng như sau:
UDNS Cache Stats: Cached 962 of 1750
Nếu bạn chạy các lệnh đó trước và sau khi chạy các biến thể flushcache, bạn sẽ thấy chúng phải được đặt lại thành bộ đệm 0 mục nhập, như vậy:
MDNS Cache Stats: lo0: Cached 0 of 2000
Làm sao bạn biết nếu nó thay đổi?
Sau khi xóa bộ nhớ cache, nếu bạn muốn xác định xem máy chủ định danh hoặc IP có thực sự thay đổi hay không, bạn có thể sử dụng lệnh 'dig' với URL như sau:
dig osxdaily.com
dig tương tự như nslookup, ngoại trừ việc nó có đầu ra tốt hơn và bao gồm một số chi tiết khác, bao gồm thời gian truy vấn, máy chủ DNS đã đặt được sử dụng để truy cập miền và dấu thời gian, tất cả đều có thể được có giá trị khi khắc phục sự cố máy chủ định danh. Nhân tiện, nếu thời gian truy vấn cho điều này hiển thị chậm, bạn nên sử dụng một công cụ như namebench để tìm máy chủ DNS nhanh hơn cho bạn, thường là Google DNS hoặc OpenDNS.
Bạn có biết thủ thuật bộ đệm DNS khác cho các phiên bản OS X mới nhất không? Hãy cho chúng tôi biết trong phần nhận xét.