WGET ไม่สามารถแก้ไขโฮสต์ได้


12

ฉันมี 2 เครื่องในเครือข่ายย่อยเดียวกันที่ใช้ Debian 5.0 พวกเขาใช้ DNS เดียวกัน (/etc/resolv.conf) พวกเขากำหนดเส้นทางไปที่เกตเวย์เดียวกัน (#route) และพวกเขามีการตั้งค่า iptables เดียวกัน (#iptables -L) ฉันสามารถ ping จากทั้งสองอย่างทั้งที่อยู่ IP และชื่อโฮสต์ ฉันสามารถใช้งาน #host www.google.com และรับผลลัพธ์เดียวกันทั้งคู่ แต่ปัญหาคือว่าหนึ่งในนั้นฉันไม่สามารถ wget หรือขด

ดังนั้นในเครื่อง 1 ทุกอย่างก็โอเค แต่บนเครื่อง 2 (ด้วยการตั้งค่าเดียวกับเครื่อง 1) ฉันไม่สามารถ wget หรือขด

ข้อผิดพลาดที่ฉันได้รับคือ:

# 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'

แต่ในเครื่องที่ 1 ไม่มีปัญหาในการ wget หรือขดและส่งคืน:

# 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'

เป็นต้น

ฉันหวังว่าใครบางคนที่นี่สามารถชี้ฉันในทิศทางที่ถูกต้องที่นี่เพื่อให้ฉันสามารถแก้ไขปัญหานี้ได้ :)


นี่อาจจะไม่เกี่ยวข้องกับ wget แต่เป็นปัญหาเครือข่าย
jldupont

คุณมีการตั้งค่าพร็อกซีในสภาพแวดล้อมหรือไม่ .. เครื่องทำงานของฉันทำ :-(
lexu

ลองใช้ "host google.com" ไม่ใช่ "host www.google.com" บนเซิร์ฟเวอร์ 2
Bill Weiss

คำตอบ:


17

ตรวจสอบ/etc/nsswitch.confไฟล์ของคุณ(หรือสิ่งที่เทียบเท่ากับ Debian หากไม่ใช่ไฟล์นั้น)

hostและnslookup มักจะทำการค้นหา DNS

อย่างไรก็ตามแอปพลิเคชันอื่น ๆ จะค้นหาใน NSS เป็นอันดับแรกสำหรับระบบการตั้งชื่ออื่น ๆ (เช่น/etc/hostsNIS เป็นต้น) หากมีการกำหนดค่าอย่างอื่น แต่ใช้ไม่ได้อาจทำให้แอปพลิเคชันไม่เคยลองใช้ DNS


3
วิธีการทาง canonical เพื่อตรวจสอบตัวแก้ไขกำลังทำงานgetent hosts google.comอยู่ สิ่งนี้ใช้ nsswitch.conf และ resolv.conf ตามต้องการ
Joe

9

ขอบคุณสำหรับคำตอบพวกคุณ!

มันเป็นไฟล์ nsswitch.conf ฉันมีการติดตั้ง LDAP จากบทช่วยสอนที่บอกให้ฉันใช้บรรทัดนี้ในโฮสต์:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

เมื่อฉันเปลี่ยนเป็น:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

มันทำงานได้โดยไม่มีปัญหา ดังนั้นฉันเดาไฟล์ config nsswitch ทำให้มันคืนค่า null ถ้าไม่พบในไฟล์หรือ mdns4_minimal ใช่ไหม?

ขอบคุณสำหรับความช่วยเหลือของคุณ!


7
คุณน่าจะยอมรับคำตอบของ Alnitak
Dan Carley

ใช่ฉันจะทำอย่างไร : - /

ยอมรับโดยคลิกที่ "V" ถัดจากคะแนนโหวต :)
Redsandro

3

สิ่งแรกที่ต้องลองคือตรวจสอบว่า DNS ทำงานถูกต้องหรือไม่

# 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

หากคุณไม่ได้รับการตอบสนองนั้นให้ตรวจสอบ /etc/resolv.conf และค้นหาเซิร์ฟเวอร์ชื่อที่แสดงในไฟล์นั้น คุณสามารถ ping แต่ละรายการได้หรือไม่

ลองสอบถามแต่ละรายการเป็นรายบุคคล:

# host google.com 12.34.56.78

คุณสามารถแก้ไขโฮสต์อื่นได้หรือไม่


3

ฉันมีปัญหาเดียวกัน แต่ถัดจากการเปลี่ยนแปลง/etc/nsswitch.conf:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

ฉันยังต้องเปลี่ยนเซิร์ฟเวอร์ชื่อ:

เปลี่ยน/etc/resolv.confเพื่อให้ชี้ไปที่ google nameservers สิ่งที่เพิ่มโดยผู้จัดการเครือข่ายไม่ทำงานสำหรับฉัน

# RED 2013-03-31
nameserver 8.8.8.8
nameserver 8.8.4.4

3
ขอบคุณไม่ระบุชื่อสำหรับความคิดเห็นเชิงสร้างสรรค์ใน downvote
Redsandro

2

อาจมีการกำหนดค่าพร็อกซีที่ไม่ถูกต้องบนเครื่องด้วยข้อผิดพลาดหรือไม่? ลองสิ่งนี้:

# wget --no-proxy google.com
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.