Làm cách nào tôi có thể khiến OSX Mavericks nhận thấy sự thay đổi DNS trong `/ etc / hosts`?


24

Một cách phổ biến để "chặn" một trang web (ví dụ: để loại bỏ nó như một sự phân tâm) là chỉnh sửa /etc/hostsvà trỏ tên miền đến địa chỉ loopback. Ví dụ:

# Stop goofing off
127.0.0.1 youtube.com

Trên Mavericks, tôi thấy rằng những thay đổi như thế này dường như bị HĐH bỏ qua; sau khi chỉnh sửa tệp (với sudo) và lưu, trang web sẽ bị chặn vẫn tải.

Tôi đã thử thiết lập lại bộ đệm DNS của mình như sau:

dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Nhưng trang web vẫn tải.

Làm cách nào tôi có thể khiến OSX Mavericks nhận thấy sự thay đổi /etc/hosts?


1
Có thể đó là bộ đệm DNS của trình duyệt không bị xóa? IP nào ping youtube.comsử dụng?
Leonid Shevtsov

Lưu ý bên lề: nếu bạn đang sử dụng DNS để tạm thời chặn các trang web, selfcontrolapp.com cho OSX hoạt động độc đáo. Nó sửa đổi tập tin máy chủ và dường như tự động xóa bộ đệm của trình duyệt. Họ cũng đề cập đến các ứng dụng tương tự cho các nền tảng khác: github.com/SelfControlApp/elfcontrol/wiki/FAQ
Nathan Long

Câu trả lời:


19

Theo trang hướng dẫn máy chủ (5) , /etc/hoststệp được sử dụng bởi mDNSResponder. Các nỗ lực của bạn đang xóa chính xác bộ đệm rộng của máy tính nhưng bạn cũng cần xóa bộ đệm riêng của trình duyệt.

Sau mỗi lần chỉnh sửa /etc/hostsđặt lại mDNSResponderbộ đệm bằng ghi chú kỹ thuật này của Apple, OS X: Cách đặt lại bộ đệm DNS :

sudo dscacheutil -flushcache

Sau khi làm điều này, thiết lập lại bộ nhớ cache trình duyệt của bạn :

  • Safari: sử dụng mục menu Safari > Đặt lại Safari .
  • Chrome: sử dụng mục menu Chrome > Xóa dữ liệu duyệt web .

1
Điều này đã sửa nó. Trong phần "Xóa dữ liệu duyệt web" của Chrome, có các hộp kiểm cho các loại dữ liệu. "Làm trống bộ đệm" là cái có liên quan.
Nathan Long

5

Xóa bộ nhớ cache trình duyệt của bạn và thêm 127.0.0.1 www.youtube.comvào tập tin máy chủ của bạn.

youtube.comquyết tâm www.youtube.com. Trình duyệt của bạn đang lưu trữ thông tin đó và chuyển hướng bạn đến trang www.


0

Trong OS X 10.9 Mavericks, có vấn đề với việc cố gắng liệt kê nhiều tên máy chủ trên cùng một dòng / etc / hosts. Tôi đã thử tất cả các mẹo liên quan đến DNS khác trong bài đăng này và bài đăng liên quan đều vô ích, cho đến khi tôi vấp phải liên kết "vấn đề" ở trên.

Tôi đã từng có một cái gì đó như thế này:

127.0.0.1 localhost host1 host2 host3 ...

nhưng tôi thấy rằng độ phân giải của các máy chủ đó sẽ mất vĩnh viễn hoặc không hoạt động. Cố gắng truy cập các trang web thông qua trình duyệt thường sẽ ổn (mặc dù đôi khi rất chậm để giải quyết), nhưng cố gắng ping từ dòng lệnh sẽ không hoạt động.

Thay đổi nó thành định dạng sau đây giúp mọi thứ hoạt động tốt với tôi và mọi thứ hiện đang hoạt động tốt với ping, trong trình duyệt và mọi nơi khác:

127.0.0.1 localhost
127.0.0.1 host1
127.0.0.1 host2
127.0.0.1 host3

Thêm chi tiết .


0

Trên đầu câu trả lời của Graham, hãy thử chrome: // net-internals / # dns (cho Google Chrome) để xem những gì được lưu trong bộ nhớ cache. Sau đó nhấp vào Clear Host Cache để xóa sạch tất cả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.