Discoveryd Thay thế để thay thế đối số mDNSResponder?


13

Đây là một tiếp theo trực tiếp cho câu hỏi này . Trước Yosemite , tôi sẽ thêm đối số "-AlwaysAppendSearchDomains" vào tệp plist mDNSResponder để tất cả các tra cứu trình phân giải cục bộ đã thêm các miền tìm kiếm, bất kể có một khoảng thời gian nào trong nhãn được tìm kiếm hay không. Ví dụ: cho dù tôi cố gắng ssh thành tên máy chủ foo.bar hay foo, tên miền tìm kiếm của baz.com nên được thử, không chỉ cho trường hợp sau, như (và) là hành vi mặc định.

Bây giờ, có vẻ như mDNSResponder đã biến mất, thay thế bằng Discoveryd. Tôi không thể tìm thấy một tùy chọn tương tự để có được nó luôn luôn nối thêm miền tìm kiếm. Gợi ý? Tôi thà không đi theo con đường sử dụng trình phân giải cục bộ không mặc định, nhưng tôi coi đó là một tùy chọn. Hiện tại, tôi sẽ chỉ nhập các FQDN dài, nhưng tôi thực sự không thích.

Cảm ơn, Pete


Trước đây tôi đã cố gắng kích hoạt mDNSResponder bị vô hiệu hóa nhưng kể từ DP8, điều đó dường như vắng mặt hoàn toàn :( Tôi đã có một vé hỗ trợ được chuyển đến các kỹ sư Yosemite bây giờ về tùy chọn -AlwaysAppendSearchDomains và cách xử lý vấn đề này với Discoveryd vì vậy tôi sẽ đăng thêm phát hiện ở đây khi họ liên lạc với tôi trong vài ngày.
djh

@djh, có may mắn nào với các kỹ sư của Apple không?
Sigsegv

Điều này được cố định như là một phần của bản cập nhật 10.10.1 : Allows you to append search domains for partially qualified domain names when performing DNS lookups (consult the discoveryd man page for more information). Xem câu trả lời của @ Teknisten bên dưới.
cOle2

Điều này dường như ít liên quan hơn trên các phiên bản macOS mới hơn vì chúng đã loại bỏ Discoveryd trong 10.10.4 macrumors.com/2015/06/30/apple-release-os-x-10-10-4
Scott Willeke

Câu trả lời:


18

Kể từ 10.10.1, cách đơn giản nhất để khắc phục điều này là thêm --AlwaysAppendSearchDomainsvào ProgramArgumentstrong file plist/System/Library/LaunchDaemons/com.apple.discoveryd.plist

Sau đó khởi động lại com.apple.discoveryd.plistbằng:

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

Tất cả điều này theo sự giúp đỡ được in bởi:

/usr/libexec/discoveryd --help

Điều đó sẽ làm tương tự như đã làm cho mDNSResponder theo như tôi có thể nói.


Thật không may làm việc ở El Capitan.
Dmitry Verkhoturov

4

Chạy sudo Discoveryutil mdnsactivingirectory có trong Terminal. Theo https://discussions.apple.com/message/26927843#26927843 đó là giải pháp.

Điều này có thể được thực hiện để chạy tự động bất cứ khi nào khởi chạy một thiết bị đầu cuối mà không cần mật khẩu:

  • sudo visudo
    • thêm một dòng vào dưới cùng %admin ALL=NOPASSWD: /usr/sbin/discoveryutil
    • Nếu nhóm quản trị viên không hoạt động, hãy chạy groupstại thiết bị đầu cuối và sử dụng một nhóm thích hợp - có thể là 'nhân viên' hoặc 'mọi người'. Hoặc chỉ sử dụng tên người dùng cá nhân mà không dẫn đầu%
  • Để kiểm tra thay đổi visudo
    • sudo -k
    • sudo suvà xác minh rằng bạn được yêu cầu nhập mật khẩu. Sau đó, control-c mà không cần nhập mật khẩu của bạn
    • sudo discoveryutil mdnsactivedirectoryvà xác minh rằng bạn không yêu cầu mật khẩu
  • Thêm một dòng vào ~ / .bash_profile sudo discoveryutil mdnsactivedirectory yes
  • Thêm thiết bị đầu cuối vào mục đăng nhập người dùng của bạn
    • vào ngày 10.10: Tùy chọn hệ thống-> Người dùng & Nhóm, Chọn Người dùng
    • Thẻ "Mục đăng nhập" và thêm / Ứng dụng / Tiện ích / Thiết bị đầu cuối

Làm thế nào để bạn thực hiện điều này vĩnh viễn? Sau khi khởi động lại, bạn sẽ cần phải thực hiện lại lệnh này.
JoeriBe

Điều này dường như không hoạt động đối với tôi, ít nhất là viết tên máy chủ không phải .local. Tôi vẫn cần nhập "ssh foo.bar.baz.com" thay vì "ssh foo.bar", mặc dù ".baz.com" nằm trong đường dẫn tìm kiếm của tôi.
Sigsegv

Bạn không nên thêm vào người dùng ~/.bash_profilemột sửa đổi cấu hình phải được thực hiện ở cấp độ của trình nền hệ thống, tại đây discoveryd.
dan

1

Không có giải pháp nào đáng tiếc, nhưng tôi đã phát hiện ra rằng ít nhất bạn có thể kiểm tra cấu hình trình phân giải bằng cách sử dụng 'Discoveryutil', như vậy:

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

Rõ ràng trình phân giải đầu tiên liệt kê một tên miền tìm kiếm, mặc dù nó dường như không hoạt động như trong các phiên bản OS X <10.10. Không biết tại sao có một trình phân giải thứ hai mà không có miền tìm kiếm được liệt kê.


1

Đây là một giải pháp tấn công bằng cách sử dụng một máy chủ tên cục bộ - hoạt động với tôi:

https://github.com/joedj/yosemite_dnsfix


1
Sẽ tốt hơn nếu thêm giải pháp như một phần của câu trả lời, nếu không, nếu liên kết biến mất, câu trả lời sẽ trở nên vô dụng. Bạn có thể chỉnh sửa bài viết của riêng bạn để thêm nó.
Tetsujin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.