Tại sao Chromium bỏ qua / etc / hosts và dnsmasq?


51

Tôi đang sử dụng hostblock cùng với dnsmasq trên Arch Linux để chặn một số trang web, một trong số đó là facebook.comwww.facebook.com.

Tôi biết mọi thứ đang hoạt động bình thường vì một ping đơn giản đến facebook.com(hoặc www.facebook.com) trả về 127.0.0.1. Ngoài ra, nếu tôi truy cập các trang web này từ Midori, một trang trống sẽ được trả lại (đây là hành vi được mong đợi, vì tôi đã sử dụng trình nền kwakd để trả về các trang trống trên localhost).

Chỉ Chromium dường như bỏ qua danh sách chặn của tôi. Truy cập facebook.com từ nó khiến tôi truy cập thẳng vào trang chủ facebook.

Sau khi dọn dẹp mọi thứ (Ctrl + Shift + Xóa) kể từ khi bắt đầu và khởi động lại Chromium, tôi nhận được hành vi mong muốn (= không thể truy cập Facebook).

Mặc dù, sau một thời gian (tôi không chắc chắn chính xác nguyên nhân gây ra sự cố này), Chromium lại bỏ qua DNS dnsmasq cục bộ của tôi và truy cập thành công Trang chủ facebook.

Tôi đã đọc một cái gì đó về bộ nhớ đệm và tìm nạp trước các truy vấn DNS của Chromium, nhưng tôi không chắc chắn cách tắt nó.

Câu hỏi là: tại sao Chromium bỏ qua DNS cục bộ của tôi và tôi có thể làm gì để ngăn chặn nó?


2
Bạn đang sử dụng proxy? Khi bạn sử dụng proxy, các yêu cầu DNS được thực hiện trên proxy.
Zoredache

Không, tôi không sử dụng bất kỳ proxy nào, hostblock không yêu cầu một proxy.
thiagowfx

Tôi đã thử các phương pháp của các câu trả lời bên dưới, nhưng bằng cách nào đó, Chromium vẫn nhận được địa chỉ IP. Có một số địa chỉ cứng trong Chromium không?
Geremia

Câu trả lời:


41

Phần lớn các tài liệu tham khảo về chủ đề này là cũ. Nếu bạn có phiên bản cũ của Chromium, hãy làm theo câu trả lời của edvinas.me .

Đối với các phiên bản hiện tại của Chromium (tại thời điểm bài viết này được viết: 33), đây là những gì bạn nên làm:

  1. Đi đến chrome://settings
  2. Nhấp vào "Hiển thị cài đặt nâng cao ..."
  3. Bỏ đánh dấu các hành động dự đoán mạng để cải thiện hộp hiệu suất tải trang .
  4. Kiểm tra xem việc tìm nạp trước DNS có thực sự bị vô hiệu hóa hay không bằng cách truy cập chrome://dns. Bạn sẽ thấy có một cái gì đó như độ phân giải trước DNS và kết nối trước TCP bị vô hiệu hóa. Nếu việc tìm nạp trước không bị vô hiệu hóa, bạn sẽ thấy một số bảng ở đó.

Cập nhật

Đối với các phiên bản Chrome mới hơn (tại thời điểm cập nhật này: thứ 55), mục thứ ba được diễn đạt là: Sử dụng dịch vụ dự đoán để tải trang nhanh hơn .

Tài liệu tham khảo


27

Cập nhật câu trả lời

Đảm bảo bạn xóa bộ nhớ cache của Chrome. Nhập cái này vào thanh địa chỉ:

chrome://net-internals/#dns

Sau đó bấm Clear host cachenút.

Câu trả lời cũ

Chromium đang sử dụng DNS nội bộ của Google theo mặc định (8.8.8.8 và 8.8.4.4)

Để vô hiệu hóa nó:

  1. Nhấp vào menu Công cụ (biểu tượng cờ lê nhỏ), sau đó vào Tùy chọn.

  2. Nhấp vào tab Under the Hood.

    3. Trong phần Bảo mật của Phần cứng, hãy bỏ chọn hộp kiểm Sử dụng tìm nạp trước DNS để cải thiện hiệu suất tải trang.

    4. Nhấp vào nút Đóng.

    5. Làm mới để tải lại trang web.


1
Những gì bạn nói sẽ chỉ áp dụng cho các phiên bản cũ của Chromium / Google Chrome. Các phiên bản mới hơn không có cài đặt này nữa (không phải "Under the Hood"). Có lẽ cài đặt mới là "Dự đoán hành động mạng để cải thiện hiệu suất tải trang"? Đáng buồn thay, điều này không đề cập đến bất kỳ DNS, vì vậy tôi không chắc chắn.
thiagowfx

Tôi đã cập nhật câu trả lời về cách xóa bộ đệm DNS của Chromium. Xin vui lòng có một cái nhìn, tôi hy vọng nó sẽ giúp.
phoops

Cảm ơn! Câu trả lời mới của bạn là cách tốt nhất để xóa DNS đã ghi (thay vì dọn dẹp mọi thứ như trong Ctrl + Shift + Delete). Nhưng để thoát khỏi vấn đề vĩnh viễn , tôi nghĩ câu trả lời của riêng tôi phù hợp hơn (tôi vẫn phải kiểm tra thêm một chút để chắc chắn).
thiagowfx

Chà, nếu bạn vô hiệu hóa nó mà không xóa bộ nhớ cache - nó sẽ không hoạt động cho đến khi bộ đệm hết hạn. Sau khi xóa bộ nhớ cache, tôi không nghĩ rằng Chromium có thể bằng cách nào đó có thể tìm nạp trước IP thực. Ngay cả khi tìm nạp trước, nó sẽ tìm nạp trước các giá trị bị chặn. Dù sao, ít nhất có vẻ như bạn đã sắp xếp nó ra.
phoops

2
"chrome: // net-internals / # dns" -> xóa, không hoạt động.
Totty.js

2

Một khả năng khó hiểu khác là hệ thống của bạn được thiết lập để sử dụng tệp * .pac proxy tự động. Điều này thường sẽ xảy ra nếu bạn được cấp một máy tính trong môi trường công ty và tệp * .pac đang bảo trình duyệt của bạn đi qua proxy để giải quyết URL. Điều này được ưu tiên hơn tệp / etc / hosts của bạn và nếu tệp * .pac có quy tắc trong đó để trả về PROXY nếu không có gì trùng khớp thì Chrome sẽ không tôn trọng / etc / hosts. Điều này thường sẽ là trường hợp nếu dòng lệnh của bạn hoạt động như mong đợi, ví dụ: đào, ping, v.v.

Nếu bạn đã thử các giải pháp khác và chúng không hoạt động thì hãy kiểm tra xem bạn không có thiết lập proxy tự động mà Chrome đang sử dụng.


1
Điều này làm việc cho tôi!
MediumOne

-2

Nếu bạn đang sử dụng bất kỳ tiện ích mở rộng Proxy VPN nào cho Google Chrome (như Betternet ), bạn có thể gặp phải sự cố này. Vô hiệu hóa phần mở rộng giải quyết vấn đề.

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.