WGET tidak dapat menyelesaikan host


11

Saya punya 2 mesin di sub-net yang sama menjalankan Debian 5.0. Mereka menggunakan DNS yang sama (/etc/resolv.conf), mereka merutekan ke gateway yang sama (#route) dan mereka memiliki pengaturan iptables yang sama (#iptables -L). Saya dapat melakukan ping dari keduanya, baik ke alamat IP dan ke nama host. Saya dapat menjalankan #host www.google.com dan mendapatkan hasil yang sama pada keduanya. Tetapi masalahnya adalah bahwa pada salah satu dari mereka, saya tidak bisa wget atau curl.

Jadi pada mesin 1 semuanya OK, tetapi pada mesin 2 (dengan pengaturan yang sama seperti mesin 1) Saya tidak bisa wget atau menggulung.

Kesalahan yang saya dapatkan adalah:

# wget google.com
--2009-10-20 16:38:36--  http://google.com/
Resolving google.com... failed: Name or service not known.
wget: unable to resolve host address `google.com'

Tetapi pada mesin 1 itu tidak ada masalah untuk wget atau curl dan kembali:

# wget google.com
--2009-10-20 16:43:55--  http://google.com/
Resolving google.com... 74.125.53.100, 74.125.45.100, 74.125.67.100
Connecting to google.com|74.125.53.100|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
...
Saving to: `index.html.3'

Dll

Saya berharap seseorang di sini dapat mengarahkan saya ke arah yang benar di sini sehingga saya dapat memperbaiki masalah ini :)


Ini kemungkinan besar tidak terkait dengan wget tetapi dengan masalah jaringan.
jldupont

apakah Anda memiliki pengaturan proxy dalam lingkungan .. mesin kerja saya lakukan :-(
lexu

Coba "host google.com", bukan "host www.google.com", di server 2.
Bill Weiss

Jawaban:


17

Periksa /etc/nsswitch.conffile Anda (atau apa pun yang setara di Debian jika bukan itu).

hostdan nslookup selalu melakukan pencarian DNS.

Namun aplikasi lain akan mencari NSS terlebih dahulu untuk sistem penamaan lainnya (misalnya /etc/hosts, NIS, dll). Jika ada sesuatu yang dikonfigurasi tetapi tidak berfungsi dapat mencegah aplikasi dari pernah mencoba DNS.


3
Cara kanonik untuk memeriksa resolver sedang berjalan getent hosts google.com. Ini menggunakan nsswitch.conf dan kemudian resolv.conf sesuai kebutuhan.
Joe

9

Terima kasih atas jawaban kalian!

Itu adalah file nsswitch.conf. Saya telah menyiapkan LDAP dari tutorial yang memberi tahu saya untuk menggunakan baris ini di host:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Ketika saya mengubahnya menjadi ini:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Ini bekerja tanpa masalah. Jadi saya kira file konfigurasi nsswitch membuatnya kembali nol jika tidak ditemukan dalam file atau mdns4_minimal, kan?

Terima kasih atas bantuan Anda!


7
Anda mungkin harus menerima jawaban Alnitak.
Dan Carley

Ya, bagaimana saya melakukannya? : - /

Terima dengan mengklik "V" di sebelah skor suara. :)
Redsandro

2

Mungkinkah ada proxy tidak valid yang dikonfigurasi pada mesin dengan kesalahan? Coba ini:

# wget --no-proxy google.com

2

Hal pertama yang harus dicoba adalah memeriksa apakah DNS berfungsi dengan benar.

# host google.com
google.com has address 74.125.67.100
google.com has address 74.125.45.100
google.com has address 74.125.53.100

Jika Anda tidak mendapatkan respons itu, periksa /etc/resolv.conf dan temukan server nama yang tercantum dalam file itu. Bisakah Anda melakukan ping masing-masing?

Coba minta masing-masing secara individual:

# host google.com 12.34.56.78

Bisakah Anda menyelesaikan host lain?


2

Saya memiliki masalah yang sama, tetapi di samping berubah /etc/nsswitch.conf:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Saya juga harus mengubah server nama:

Ubah /etc/resolv.confsehingga menunjuk ke server nama google. Yang ditambahkan oleh manajer jaringan tidak bekerja untuk saya.

# RED 2013-03-31
nameserver 8.8.8.8
nameserver 8.8.4.4

3
Terima kasih, anonim, untuk komentar konstruktif pada downvote.
Redsandro
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.