nslookup, gali, entri file firefox mengabaikan / etc / hosts

10

Ada sesuatu yang sangat salah dengan instalasi Debian saya saat ini. Sebagian besar program seperti firefox, nslookup, menggali dll mengabaikan entri dalam /etc/hostsfile, sebenarnya saya menggunakan file ini untuk pemblokiran iklan.

sebuah contoh

satu baris dalam /etc/hostsfile

127.0.0.1 www.winaproduct.com

ketika saya melakukannya dig +short www.winaproduct.commengembalikan alamat IP masing-masing server, tidak 127.0.0.1.

Buka www.winaproduct.comdi firefox, ini menunjukkan situs web masing-masing, tetapi ini tidak diharapkan.

Tetapi tidak ada masalah dengan ping, busybox nslookup, busybox ping, resolveipdll

Jadi apa masalahnya ? Dan bagaimana cara memperbaikinya? Saya pikir masalahnya adalah dengan perpustakaan penyelesaian DNS.

Perbaikan sementara, pengaturan, dnsmasqdan ubah nameserverke 127.0.0.1dalam /etc/resolv.conf.

memperbarui

masalah diselesaikan secara ajaib setelah menginstal libnss3, sebagai ketergantungangoogle-chrome

/etc/nsswitch.conf default tampak seperti hosts: files dns

bagaimana cara mengetahui nslookup, digdll. minta / etc / hosts file terlebih dahulu alih-alih bertanya langsung ke DNS?

tapi mengapa busybox nslookup, wget, resolveipdll bekerja berbeda dari nslookup, digdll?

Arnab
sumber
seperti apa hosts:entri itu /etc/nsswitch.conf?
Casey
@ casey, /etc/nsswitch.conf sepertihosts: files dns
Arnab
Silakan tambahkan informasi kunci ini dalam OQ Anda.
dan
Ini jelas bukan masalah DNS. Silakan lihat pertanyaan yang sangat mirip ini: unix.stackexchange.com/q/158419/31707 .
dan

Jawaban:

16

nslookup,, digdan hostalat untuk menanyakan server nama DNS.

Jika konfigurasi Anda tidak disediakan oleh server nama (seperti informasi yang diberikan dalam /etc/hosts) alat-alat itu tidak akan menunjukkannya, karena mereka langsung menanyakan server nama.

Jika Anda ingin memeriksa apakah resolusi "biasa" berfungsi (yaitu cara yang ditentukan /etc/nsswitch.conf), Anda dapat menggunakan getent:

getent hosts www.winaproduct.com
michas
sumber
getent hosts www.winaproduct.combekerja dengan sempurna, tapi nslookup, dig, hostdll hanya sebagai contoh, saya ingin di firefox .
Arnab
1
Jika berfungsi dengan getent, ia juga harus bekerja dengan firefox. (Keduanya menggunakan mekanisme resolusi yang sama.) Jika benar-benar tidak berfungsi, periksa konfigurasi "tidak biasa" di firefox. Mungkin Anda mengatur semacam proxy atau sesuatu seperti ini.
michas
terima kasih atas komentarnya, saya tidak menggunakan konfigurasi firefox yang tidak biasa, tidak itu tidak bekerja dengan firefox (38.0.1).
Arnab
3
Saya sangat yakin ini adalah masalah browser. Coba wgetatau browser lain seperti chrome. Jika getentmemberikan hasil yang diharapkan, semuanya harus.
michas
1
@daniel Azuelos, tidak ada yang salah dengan pengaturan firefox, sudah menggunakan No Proxy. Jadi bagaimana cara mengetahui nslookup, digdll. Meminta /etc/hostsfile terlebih dahulu alih-alih bertanya langsung ke DNS? Terima kasih atas komentar Anda yang berharga.
Arnab
4

Anda dapat menginstal DNSmasq yang akan membaca entri / etc / hosts Anda dan mengimpornya ke cache DNS-nya. Kemudian, semua alat DNS Anda dan aplikasi permintaan DNS seperti dig, host dan nslookup akan menerima jawaban yang berasal dari file / etc / hosts.

Tony Barganski
sumber