Mengapa Chromium memintas / etc / hosts dan dnsmasq?

51

Saya menggunakan hostsblock bersama dengan dnsmasq di Arch Linux untuk memblokir beberapa situs web, salah satunya adalah facebook.comdan www.facebook.com.

Saya tahu semuanya berfungsi dengan baik karena ping sederhana ke facebook.com(atau www.facebook.com) mengembalikan 127.0.0.1. Juga, jika saya mengakses situs web ini dari Midori, halaman kosong dikembalikan (ini adalah perilaku yang diharapkan, karena saya juga menggunakan daemon kwakd untuk mengembalikan halaman kosong di localhost).

Tampaknya hanya Chromium yang melewati daftar blokir saya. Mengakses facebook.com darinya membuat saya langsung menuju ke beranda facebook.

Setelah membersihkan semuanya (Ctrl + Shift + Delete) sejak awal waktu dan mulai ulang Chromium, saya mendapatkan perilaku yang diinginkan (= tidak dapat mengakses Facebook).

Meskipun, setelah beberapa saat (saya tidak yakin apa penyebabnya), Chromium mengabaikan lagi DNS dnsmasq lokal saya dan berhasil mengakses Beranda facebook.

Saya membaca sesuatu tentang caching dan pra-pengambilan kueri DNS Chromium, tapi saya tidak yakin cara menonaktifkannya.

Pertanyaannya adalah: mengapa Chromium melewati DNS lokal saya, dan apa yang dapat saya lakukan untuk menghentikannya?

thiagowfx
sumber
2
Apakah Anda menggunakan proxy? Saat Anda menggunakan proxy, permintaan DNS dilakukan di proxy.
Zoredache
Tidak, saya tidak menggunakan proxy apa pun, hostsblock tidak memerlukannya.
thiagowfx
Saya mencoba metode jawaban di bawah ini, tetapi entah bagaimana Chromium masih mendapatkan alamat IP ... Apakah ada beberapa alamat bawaan di Chromium?
Geremia

Jawaban:

41

Sebagian besar referensi tentang subjek ini sudah tua. Jika Anda memiliki versi Chromium lama, ikuti jawaban edvinas.me .

Untuk versi Chromium saat ini (pada saat posting ini ditulis: 33), inilah yang harus Anda lakukan:

  1. Pergi ke chrome://settings
  2. Klik pada "Tampilkan pengaturan lanjutan ..."
  3. Hapus tanda tindakan jaringan Prediksi untuk meningkatkan kotak kinerja pemuatan halaman .
  4. Periksa apakah pengambilan DNS benar-benar dinonaktifkan dengan masuk ke chrome://dns. Anda akan melihat sesuatu seperti pra-resolusi DNS dan pra-koneksi TCP dinonaktifkan. Jika pengambilan awal tidak dinonaktifkan, Anda akan melihat beberapa tabel di sana.

Memperbarui

Untuk versi Chrome yang lebih baru (pada saat pembaruan ini: yang ke-55), item ketiga diucapkan sebagai: Gunakan layanan prediksi untuk memuat halaman lebih cepat .

Referensi

thiagowfx
sumber
27

Jawaban yang Diperbarui

Pastikan Anda membersihkan cache Chrome. Ketikkan ini di bilah alamat:

chrome://net-internals/#dns

Kemudian klik Clear host cachetombol.

Jawaban Lama

Chromium menggunakan DNS internal Google secara default (8.8.8.8 dan 8.8.4.4)

Untuk menonaktifkannya:

  1. Klik menu Alat (ikon kunci inggris kecil), lalu pergi ke Opsi.

  2. Klik pada tab Di Balik Terpal.

    3. Di bawah bagian "Privasi", hapus centang pada kotak centang untuk Gunakan pra-pengambilan DNS untuk meningkatkan kinerja pemuatan halaman.

    4. Klik pada tombol Tutup.

    5. Refresh untuk memuat kembali halaman web.

phoops
sumber
1
Apa yang Anda katakan hanya berlaku untuk versi lama Chromium / Google Chrome. Versi yang lebih baru tidak memiliki pengaturan ini lagi (baik "Under the Hood"). Mungkin pengaturan baru adalah "Memprediksi tindakan jaringan untuk meningkatkan kinerja memuat halaman"? Sayangnya, ini tidak menyebutkan DNS apa pun, jadi saya tidak yakin.
thiagowfx
Saya telah memperbarui jawaban tentang cara menghapus cache DNS Chromium. Silakan lihat, saya harap ini membantu.
phoops
Terima kasih! Jawaban baru Anda adalah cara terbaik untuk menghapus DNS yang direkam (alih-alih membersihkan semuanya seperti pada Ctrl + Shift + Delete). Tetapi untuk menghilangkan masalah secara permanen , saya pikir jawaban saya lebih cocok (saya masih harus menguji sedikit lebih banyak untuk memastikan).
thiagowfx
Nah jika Anda hanya menonaktifkannya tanpa menghapus cache - itu tidak akan berfungsi sampai cache berakhir. Setelah cache dihapus, saya tidak berpikir bahwa Chromium harus dapat mengambil-IP yang sebenarnya. Bahkan jika pra-pengambilan ada di dalamnya akan mengambil nilai yang diblokir sebelumnya. Ngomong-ngomong, setidaknya sepertinya Anda sudah menyelesaikannya.
phoops
2
"chrome: // net-internal / # dns" -> clear, tidak berfungsi.
Totty.js
2

Satu kemungkinan lain yang tidak jelas adalah bahwa sistem Anda diatur untuk menggunakan file proxy * .pac otomatis. Ini biasanya terjadi jika Anda mengeluarkan komputer di lingkungan perusahaan dan file * .pac memberi tahu browser Anda untuk melalui proxy untuk menyelesaikan URL. Ini mengambil prioritas di atas file / etc / hosts Anda dan jika file * .pac memiliki aturan di dalamnya untuk mengembalikan PROXY jika tidak ada yang cocok maka akan muncul bahwa Chrome tidak menghormati / etc / hosts. Ini biasanya akan menjadi kasus jika baris perintah Anda berfungsi seperti yang diharapkan, misalnya menggali, ping dll.

Jika Anda mencoba solusi lain dan tidak berfungsi maka periksa untuk melihat Anda tidak memiliki setup proxy otomatis yang digunakan Chrome.

Elijah Lynn
sumber
1
Ini berhasil untuk saya!
MediumOne
-2

Jika Anda menggunakan ekstensi Proxy VPN apa pun untuk Google Chrome (seperti Betternet ), Anda mungkin menghadapi masalah ini. Menonaktifkan ekstensi memecahkan masalah.

bantya
sumber