Discoveryd ทางเลือกเพื่อแทนที่อาร์กิวเมนต์ mDNSResponder?


13

นี่เป็นคำถามที่ตามมาโดยตรง ก่อนที่โยเซมิตีฉันจะเพิ่มอาร์กิวเมนต์ "-AlwaysAppendSearchDomains" ลงในไฟล์ mDNSResponder plist plist เพื่อให้การค้นหาผู้แก้ไขของโลคัลทั้งหมดเพิ่มโดเมนการค้นหาโดยไม่คำนึงว่ามีช่วงเวลาในป้ายกำกับหรือไม่ ตัวอย่างเช่นไม่ว่าฉันจะลองใช้ ssh กับชื่อโฮสต์ foo.bar หรือ foo โดเมนการค้นหาของ baz.com ควรลองไม่เพียง แต่ในกรณีหลังเท่านั้นเนื่องจากเป็นพฤติกรรมเริ่มต้น (และเป็น)

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

ขอบคุณพีท


ก่อนหน้านี้ฉันได้พยายามเปิดใช้งาน mDNSR ตอบคำถามที่ปิดใช้งาน แต่ตั้งแต่ DP8 ซึ่งดูเหมือนว่าขาดไปทั้งหมด :( ฉันได้รับตั๋วสนับสนุนเพิ่มขึ้นไปยังวิศวกรของ Yosemite ในขณะนี้เกี่ยวกับตัวเลือก -AlwaysAppendSearchDomains และวิธีจัดการกับ Discoveryd การค้นพบที่นี่เมื่อพวกเขาติดต่อฉันในไม่กี่วัน
djh

@djh โชคใด ๆ กับวิศวกรของ Apple?
Sigsegv

นี้ได้รับการแก้ไขเป็นส่วนหนึ่งของ10.10.1Allows you to append search domains for partially qualified domain names when performing DNS lookups (consult the discoveryd man page for more information)การปรับปรุง: ดูคำตอบของ @ Teknisten ด้านล่าง
cOle2

สิ่งนี้ดูเหมือนจะมีความเกี่ยวข้องน้อยกว่ากับ macOS รุ่นใหม่เนื่องจากพวกเขาได้ลบ Discoveryd ใน 10.10.4 macrumors.com/2015/06/30/apple-releases-os-x-10-10-4
Scott Willeke

คำตอบ:


18

ตั้งแต่ 10.10.1 วิธีที่ง่ายที่สุดในการแก้ไขปัญหานี้คือการเพิ่ม--AlwaysAppendSearchDomainsการProgramArgumentsในไฟล์ plist/System/Library/LaunchDaemons/com.apple.discoveryd.plist

จากนั้นรีสตาร์ทcom.apple.discoveryd.plistด้วย:

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.discoveryd.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.discoveryd.plist

ทั้งหมดนี้เป็นไปตามความช่วยเหลือที่พิมพ์โดย:

/usr/libexec/discoveryd --help

นั่นจะทำเช่นเดียวกันกับที่ mDNSR ตอบกลับเท่าที่ฉันจะบอกได้


ไม่ได้ทำงานใน El Capitan อย่างน่าเสียดาย
Dmitry Verkhoturov

4

เรียกใช้sudo Discoveryutil mdnsactivedirectory ใช่ใน Terminal ตามhttps://discussions.apple.com/message/26927843#26927843มันเป็นทางออก

สิ่งนี้สามารถทำให้ทำงานโดยอัตโนมัติเมื่อใดก็ตามที่เปิดตัวเทอร์มินัลโดยไม่มีรหัสผ่าน:

  • sudo visudo
    • เพิ่มบรรทัดไปที่ด้านล่าง %admin ALL=NOPASSWD: /usr/sbin/discoveryutil
    • หากกลุ่มผู้ดูแลระบบไม่ทำงานให้เรียกใช้groupsที่เครื่องและใช้กลุ่มที่เหมาะสม - อาจเป็น 'พนักงาน' หรือ 'ทุกคน' หรือเพียงแค่ใช้ชื่อผู้ใช้ส่วนบุคคลโดยไม่ต้องนำ%
  • เพื่อทดสอบการเปลี่ยนแปลง visudo
    • sudo -k
    • sudo suและยืนยันว่าคุณถูกขอรหัสผ่าน จากนั้นควบคุม -c โดยไม่ต้องป้อนรหัสผ่านของคุณ
    • sudo discoveryutil mdnsactivedirectoryและยืนยันว่าคุณไม่ได้รับรหัสผ่าน
  • เพิ่มบรรทัดใน ~ / .bash_profile sudo discoveryutil mdnsactivedirectory yes
  • เพิ่มเทอร์มินัลในรายการล็อกอินของผู้ใช้
    • บน 10.10: การตั้งค่าระบบ -> ผู้ใช้ & กลุ่มเลือกผู้ใช้
    • ไปที่แท็บ "รายการเข้าสู่ระบบ" และเพิ่ม / Applications / Utilities / Terminal

คุณจะทำให้ถาวรนี้ได้อย่างไร หลังจากรีบูตเครื่องคุณจะต้องใช้คำสั่งนี้อีกครั้ง
JoeriBe

ดูเหมือนจะไม่ได้ผลสำหรับฉันอย่างน้อย wrt ชื่อโฮสต์ที่ไม่ใช่. local ฉันยังต้องพิมพ์ "ssh foo.bar.baz.com" แทน "ssh foo.bar" ถึงแม้ว่า ".baz.com" จะอยู่ในเส้นทางการค้นหาของฉัน
Sigsegv

คุณไม่ควรเพิ่มในการใช้การปรับเปลี่ยนการตั้งค่าที่จะต้องมีการทำในระดับของภูตระบบที่นี่~/.bash_profile discoveryd
dan

1

น่าเสียดายที่ไม่มีวิธีแก้ปัญหา แต่ฉันพบคุณอย่างน้อยคุณสามารถตรวจสอบตัวแก้ไขค่าโดยใช้ 'Discoveryutil' เช่น:

mdbraber-mba:~ mdbraber$ sudo discoveryutil configresolver
Configuration Resolvers: Resolver domain [default], type Unicast, ifIndex 4, port 0, timeout 30, A yes, AAAA no, serviceID 0, scope None, order 0
    server 192.168.143.1
    search domain ourhouse
Configuration Resolvers: Resolver domain [default], type Unicast, ifIndex 4, port 0, timeout 30, A yes, AAAA no, serviceID 0, scope InterfaceID, order 0
    server 192.168.143.1

เห็นได้ชัดว่าตัวแก้ไขแรกแสดงรายการโดเมนการค้นหาแม้ว่าจะดูเหมือนจะไม่ทำงานเหมือนใน OS X <10.10 เวอร์ชัน ไม่ทราบว่าทำไมจึงมีโปรแกรมแก้ไขปัญหาตัวที่สองโดยไม่มีโดเมนการค้นหาอยู่ในรายการ


1

นี่คือโซลูชันที่ถูกแฮ็กโดยใช้เนมเซิร์ฟเวอร์ในระบบ - ใช้ได้สำหรับฉัน:

https://github.com/joedj/yosemite_dnsfix


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