nslookup ทำงานร่วมกับ /etc/resolv.conf, ping และ ssh ไม่ได้


12

ในเครือข่ายมหาวิทยาลัยในพื้นที่ของเราฉันมี (ได้รับจาก DHCP) การตั้งค่าต่อไปนี้ใน /etc/resolv.conf:

search a.domain.com b.domain.com domain.com
nameserver x.x.x.x
nameserver y.y.y.y

การตั้งค่าเหมือนกันในการตั้งค่าระบบเช่นกัน ปัญหาต่อไปนี้เกิดขึ้น:

nslookup server

ใช้งานได้และกำลังใช้เนมเซิร์ฟเวอร์ตัวใดตัวหนึ่งเพื่อขอ server.a.domain.com อย่างถูกต้อง ถ้าฉันพยายาม ping

ping server

ล้มเหลวด้วยโฮสต์ที่ไม่สามารถเข้าถึงได้

ping server.a.domain.com

โรงงาน การเพิ่มเซิร์ฟเวอร์ด้วยตนเองด้วยที่อยู่ ip ที่ได้รับจาก nslookup ไปยัง / etc / hosts ทำให้การ ping ทำงานได้เช่นกัน แต่ "ทางออก" นี้ช่วยหลีกเลี่ยงเซิร์ฟเวอร์ชื่อและดังนั้นจึงไม่เหมาะ (และฉันต้องเพิ่มรายการอื่นอีกประมาณ 20 รายการ) ความคิดใดที่ทำให้เกิดสิ่งนี้ ทำไม ping ไม่ใช้ผลลัพธ์ของ nslookup / searchdomains

ssh server

ยังล้มเหลวซึ่งเป็นปัญหาที่แท้จริง / ความไม่สะดวก

ฉันได้เพิ่ม AlwaysUseSearchDomains ไปยัง mDNSResponder แล้ว แต่การแก้ไขนี้จะช่วยปัญหาเมื่อใช้ server.foo เท่านั้น

ฉันใช้ OS X Lion 10.7.3


แพ็กเก็ต Ping อาจถูกบล็อกโดยอุปกรณ์เครือข่าย สิ่งเดียวกันกับแพ็กเก็ต ssh - พวกเขาอาจไม่ต้องการให้คุณทำสิ่งที่คุณทำ
Thorbjørn Ravn Andersen

ดูวิธีแก้ปัญหาด้านล่างนั่นไม่ใช่ปัญหา
tholu

"โฮสต์ที่ติดต่อไม่ได้" หมายถึงปัญหาการเชื่อมต่อเครือข่าย (หรือ ICMP ถูกบล็อก) ไม่ใช่ปัญหาการแก้ไข DNS
Daniel Serodio

คำตอบ:


2

คุณได้อ่านความคิดเห็นที่ด้านบนของ/etc/resolv.conf?

# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.

วิธีการแก้ปัญหาที่ถูกต้องคือการเพิ่มโดเมนการค้นหาผ่านทางแผงเครือข่ายในการตั้งค่าระบบตามที่อธิบายไว้ที่นี่


ฉันทำ. โดเมนการค้นหาจะถูกป้อนโดยอัตโนมัติในแผงเครือข่ายในการตั้งค่าระบบตามการกำหนดค่า DHCP (และเป็นสีเทาและไม่สามารถเปลี่ยนแปลงได้) ค่าเดียวกันแน่นอน / การตั้งค่าจะ / /etc/resolv.confที่พบใน
tholu

ฉันไม่รู้จะบอกอะไรคุณ ฉันได้รับทั้งการตั้งค่า Ethernet และ WiFi ผ่าน DHCP และสามารถเปลี่ยนโดเมนการค้นหาผ่านแผงการตั้งค่าระบบ
โปรเก่า

โดเมนการค้นหานั้นถูกต้องในการตั้งค่าระบบและ /etc/resolv.conf - ปัญหาคือว่า ping และ ssh ไม่ได้ใช้งาน หากพวกเขาจะใช้ผลลัพธ์ของ nslookup ทุกอย่างก็ใช้ได้ดี แต่อย่างใดพวกเขาก็ทำไม่ได้ พวกเขาค้นหา / etc / hosts แม้ว่า
tholu

ฉันเพิ่มโดเมนการค้นหาด้วยตนเอง (แม้ว่าจะเป็นสีเทา) ทีละรายการผ่านการตั้งค่าระบบและตอนนี้ก็ใช้งานได้ ขอบคุณ!
tholu

4

ผมมีปัญหาเดียวกัน. โซลูชันที่ฉันใช้คือสร้างไดเรกทอรี / etc / resolver ภายในไดเรกทอรีนั้นให้สร้างไฟล์ชื่อสำหรับแต่ละโดเมนที่คุณต้องการแก้ไข ภายในแต่ละไฟล์ควรมีสองบรรทัด

nameserver 10.0.100.2
domain  home.cainmanor.com

ไฟล์ข้างต้นจะมีชื่อ / etc / resolver / home อาจต้องมีชื่อว่า home.cainmanor.com แต่ฉันไม่สามารถทดสอบได้ในตอนนี้

โชคดี!


ฉันได้รับการทำงานโดยการตั้งค่าการค้นหาโดเมนผ่านการตั้งค่าระบบทีละหนึ่งแทนที่การตั้งค่า DHCP ซึ่ง OS X ล้มเหลวในการแยกวิเคราะห์อย่างถูกต้องชัดเจน ฉันไม่สามารถลองวิธีแก้ปัญหาของคุณ แต่ขอบคุณ!
tholu

วิธีนี้ใช้ได้ผลดีเมื่อไคลเอนต์ VPN ในองค์กรของคุณทำสิ่งที่ผิดเกี่ยวกับการตั้งค่าระบบชั่วคราว
ปีเตอร์

1

ฉันเชื่อว่าปัญหาอยู่ในการกำหนดค่า searchdomains: ping / ssh กำลังพยายามใช้gethostbyname2()ซึ่งล้มเหลวเนื่องจากชื่อไม่ทำงานอีกต่อไป (ใน Lion อย่างน้อย) และ/etc/resolv.confด้วย searchdomains ที่กำหนดค่าจึงไม่สนใจ /etc/hostsเป็นรีสอร์ทสุดท้ายสำหรับgethostbyname2()จึง SSH /etc/hostsทำงานอีกครั้งกับรายการที่เหมาะสมในการ ควรได้รับการแก้ไขโดย Apple imho

เพิ่มการค้นหาโดเมนด้วยตนเองทีละรายการคงที่ดูโซลูชันด้านบน


เมื่อฉันเพิ่มโดเมนการค้นหาในการเชื่อมต่อ WiFi ของฉัน (ซึ่งกำหนดค่าผ่าน DNS) ในระบบปฏิบัติการ 10.7.3 ผ่านการตั้งค่าระบบ -> แผงเครือข่ายมันถูกใช้โดย ping และ ssh ตามที่ฉันคาดหวัง ฉันไม่ได้สัมผัส /etc/resolv.conf หรือ / etc / hosts ด้วยตนเอง / โดยตรง แต่การเปลี่ยนแปลงจากการตั้งค่าระบบจะแสดงใน /etc/resolv.conf โดยอัตโนมัติ OS X ทำสิ่งต่างๆมากมายแตกต่างจากระบบ Unix อื่น ๆ และนี่เป็นหนึ่งในนั้น
โปรเก่า

1
ขอบคุณสิ่งนี้ได้ผลโดยการเพิ่มโดเมนการค้นหาด้วยตนเองทีละรายการดูความคิดเห็นของฉันเกี่ยวกับวิธีแก้ปัญหาที่แนะนำด้านบน
tholu

การเพิ่มโดเมนการค้นหาไม่สามารถแก้ไขปัญหาได้ ... มีใครอีกคนที่มีโซลูชันอื่นหรือไม่

คุณเพิ่มได้อย่างไร
tholu

1

ฉันพบปัญหานี้บ่อยครั้งเมื่อ Mac Book Pro (OS X เวอร์ชัน 10.10.1) ของฉันนอนหลับอยู่ ตื่นขึ้นมาและฉันไม่สามารถใช้ชื่อโฮสต์ของเครื่องในเครือข่ายของฉัน (และ ping ก็ใช้งานไม่ได้เช่นกัน) nslookup ทำงานได้ดี ไม่เห็นข้อความที่เกี่ยวข้องใน / var / log เพียงแค่ทิ้งไว้ไม่กี่นาที & hey presto มันทำงานได้อีกครั้ง .....


0

ฉันตอบคำถามนี้ที่อื่นเพราะเป็นการแก้ไขที่ง่ายสำหรับฉันและฉันไม่สามารถหาคำตอบที่เหมาะกับฉันได้ทุกที่

หลังจากรีสตาร์ท mDNSResolver หลายสิบครั้งตามที่แนะนำบนเธรดอื่น:

sudo killall -HUP mDNSResponder

ในที่สุดฉันก็ลองอย่างอื่น ฉันปิดการใช้งาน Wi-Fi และลบเครือข่ายที่ฉันต้องการทั้งหมด จากนั้นฉันสถาปนาการเชื่อมต่อ Wi-Fi ขึ้นใหม่และทุกอย่างทำงานได้ดี:

  1. เมนู Apple -> การตั้งค่าระบบ -> Wi-Fi (ด้านซ้าย)
  2. 'ปิด Wi-Fi' จากนั้นเลือก 'ขั้นสูง'
  3. ลบการเชื่อมต่อ Wi-Fi ที่คุณมีปัญหา (หรือทั้งหมดถ้าคุณต้องการ) ทำได้โดยเลือกเครือข่าย Wi-Fi ที่คุณต้องการลบและกด "-"
  4. คลิก 'ใช้' และ 'ตกลง'
  5. เปิด Wi-Fi อีกครั้ง
  6. เลือกเครือข่าย Wi-Fi ของคุณและเข้าสู่ระบบอีกครั้ง

นี่คือสิ่งที่ใช้งานได้ในที่สุดสำหรับฉัน มันน่าจะเป็นสิ่งแรกที่ฉันพยายาม แต่ฉันเป็นคนที่แต่งตัวประหลาด Linux และฉันดูการแก้ไขคอนโซลก่อน

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