mDNSResponder 인수를 대체하는 Discoveryd 대안?


13

이것은 이 질문 에 대한 직접적인 후속 조치 입니다. Yosemite 이전 에는 레이블에서 마침표가 있는지 여부에 관계없이 모든 로컬 리졸버 조회에서 검색 도메인을 추가 할 수 있도록 "-AlwaysAppendSearchDomains"인수를 mDNSResponder plist 파일에 추가했습니다. 예를 들어, 호스트 이름 foo.bar 또는 foo로 ssh를 시도하든, 기본 동작과 마찬가지로 후자의 경우뿐만 아니라 baz.com의 검색 도메인을 시도해야합니다.

이제 mDNSResponder가 사라지고 검색된 것으로 대체 된 것 같습니다. 검색 도메인을 항상 추가하는 비슷한 옵션을 찾을 수 없습니다. 제안? 기본이 아닌 로컬 리졸버를 사용하는 길을 가고 싶지는 않지만 옵션으로 간주합니다. 지금은 긴 FQDN을 입력하지만 실제로는 그렇지 않습니다.

고마워, 피트


이전에 비활성화 된 mDNSResponder를 활성화하려고 시도했지만 DP8 이후에는 전혀 없었습니다. (지금 -AlwaysAppendSearchDomains 옵션과 발견 된 상태로 처리하는 방법에 대해 요세미티 엔지니어에게 지원 티켓이 에스컬레이션되어 더 이상 게시 할 예정입니다. 그들이 며칠 만에 나에게 연락했을 때 발견 한 내용
— djh

@ djh, 애플 엔지니어와 운이 있습니까?
— Sigsegv

이것은 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). 아래 @Teknisten의 답변을 참조하십시오.
— cOle2

답변:


18

10.10.1부터이 문제를 해결하는 가장 간단한 방법 은 plist 파일에 추가 --AlwaysAppendSearchDomains하는 것 ProgramArguments입니다/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

그것은 내가 알 수있는 한 mDNSResponder와 동일하게 작동합니다.


불행히도 El Capitan에서 일하지 않습니다.
— Dmitry Verkhoturov 2016

4

터미널에서 sudo discoveryutil mdnsactivedirectory yes 를 실행하십시오 . https://discussions.apple.com/message/26927843#26927843 에 따르면 솔루션입니다.

비밀번호없이 터미널을 시작할 때마다 자동으로 실행되도록 할 수 있습니다.

  • 스도 비스도
    • 바닥에 선을 추가 %admin ALL=NOPASSWD: /usr/sbin/discoveryutil
    • 관리자 그룹이 작동하지 않으면 groups터미널에서 실행 하여 '스태프'또는 '모든 사람'과 같은 적절한 그룹을 사용하십시오. 또는 선행없이 개별 사용자 이름을 사용하십시오.%
  • Visudo 변경을 테스트하려면
    • sudo -k
    • sudo su당신이 있는지 확인 하는 암호를 요구했다. 그런 다음 암호를 입력하지 않고 control-c
    • sudo discoveryutil mdnsactivedirectory비밀번호를 묻지 않았 는지 확인하십시오
  • ~ / .bash_profile에 줄 추가 sudo discoveryutil mdnsactivedirectory yes
  • 사용자의 로그인 항목에 터미널 추가
    • 10.10 : 시스템 환경 설정-> 사용자 및 그룹, 사용자 선택
    • "로그인 항목"탭으로 이동하여 / 응용 프로그램 / 유틸리티 / 터미널을 추가하십시오.

이것을 어떻게 영구적으로 만드나요? 재부팅 후이 명령을 다시 실행해야합니다.
— JoeriBe

적어도 로컬이 아닌 호스트 이름은 wrt에서 작동하지 않는 것 같습니다. ".baz.com"이 검색 경로에 있어도 "ssh foo.bar"대신 "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.