IT

Mac OSX Lion DNS 조회 순서 [종료 됨]

lottoking 2020. 8. 25. 08:22
반응형

Mac OSX Lion DNS 조회 순서 [종료 됨]


Mac OSX Lion으로 업그레이드 한 후 이름 확인을 위해 더 이상 / etc / 호스트가 처음부터 검색되지 않습니다. 이로 인해 다음과 같은 부작용이 발생합니다.

  1. / etc / hosts의 항목이 고통스럽게 느리게 해결됩니다.
  2. 기존 도메인 (예 : 127.0.0.1 www.google.com)을 재정의 할 수 없습니다.
  3. DHCP에서 검색 도메인 항목을 가져 오면 .lan이라고 말하고 재미있는 사람이 localhost.lan을 로컬 DNS에서 127.0.0.1로 구성한 다음 로컬 호스트에 더 이상 존재하지 않습니다.

이 동작이 의도 된 것입니까? 이해가하세요? 그리고 가장 중요한 것은 어떻게 내가 이전 행동으로 돌아갈 수 있는지 것입니다.


.local TLD가 일부 멀티 캐스트 DNS (Bonjour에서 사용됨) 용으로 예약되어 있기 때문에 다르게 처리한다는 것입니다. 이 문제를 해결하기 위해 유일한 방법은 개발 호스트 (예 : .dev)에 다른 TLD를 사용하는 것입니다. 저 작동 작동합니다. 다른 사람들에게 도움이되기를 바랍니다.


호스트의 도메인 재정의와 관련하여 Lion은 일부 상황에서 IPv4 네트워크를 통해 도메인에 파일 수없는 것이 감지됩니다.

광고 도메인을로 리디렉션 때문에 Snow Leopard에서 본 적이없는 광고를 발견했을 때이를 발견했습니다 127.0.0.1. wireshark를 시작하고 AAAAIPv4 A쿼리 (IPv4)에 이어 (IPv6 DNS 레코드) 쿼리를 발견했습니다 . 광고 서버에는 IPv6 추가 기능이 콘텐츠를 제공 할 수 있습니다.

이에 대한 해결책은

::1 mydomain.com

모든 항목

127.0.0.1 mydomain.com

호스트 파일의 항목.

흥미롭게도 로컬 웹 서버가 실행 중이고 127.0.0.1:80브라우저가 웹 서버에서 응답 (오류 또는 기타)을 수신하는 경우 AAAATCP 연결이 수신 가능 만족하는 것처럼 보이기 때문에 쿼리가 실행 가능합니다 .


관련 메모에서 호스트 파일 (광고 차단, 로컬 웹 개발 등)을 많이 사용하는 경우 자체 로컬 DNS 확인을 실행하는 것이 좋습니다. /etc/hosts모든 요청에 ​​대해 읽어야 하는 디스크 / CPU 히트가 상당 하는 파일을 매우 가볍게 유지하는 것이 좋습니다.

dnsmasq상당한 성능 향상 외에도 로컬 과 같은 말 때의 한 가지 장점은 전체 최상위 도메인을 로컬 컴퓨터로 다시 리디렉션 할 수있는 것입니다. 이를 통해 로컬로 확인하려는 모든 도메인을 식별 입력하지 않고 개발을위한 전체 * .dev 네임 스페이스를 누릴 수 있습니다./etc/hosts


문제는 내가 / etc / hosts 파일을 소유 한 링크했다는 것입니다. / etc / hosts가 일반 파일이면 모든 것이 정상입니다.


업데이트 (2) : OSX 10.10.5는 mDNSResponder.

업데이트 : OSX 10.10 Yosemite는 mDNSResponder를 "discoveryd"로 대체했습니다. 업그레이드하지 않으면 DNS 조회 및 /etc/hosts.

Lion의 시스템 DNS 해석기가 mDNSResponder프로세스입니다.

"그러나 mDNSResponder는 멀티 캐스트 DNS 응답자"라고 생각할 수 있습니다. 네가 옳아; 그것은 본래 본래 목적이된다. 그러나 최신 MacOS 버전에서는 표준 호스트 조회도 수행합니다.

Lion에서는 /etc/hosts항상 그런 방식으로 변경 될 때 자동으로 다시 읽는 것처럼 보이게 됩니다. 강제 종료 mDNSResponder(자동으로 다시 시작하도록 허용)하면 문제가 해결 될 것입니다.

sudo killall mDNSResponder

트릭을해야합니다.

아래는 후손에 대한 나의 원래 대답입니다. 어떤 경우에는 여전히 문제가 될 수 있다고 생각합니다.

/etc/hosts파일이 유닉스 스타일의 텍스트 파일 인지 확인하십시오 . cr이 아닌 끝 부분에 줄 바꿈이 있습니다.

TextWrangler 또는 유닉스 텍스트 편집기로 편집하면 파일이 유지됩니다.

파일이 이미 엉망인 경우이 문제를 해결하십시오.

tr '\015' '\012' < /etc/hosts > /tmp/hosts.$$
mv /etc/hosts /etc/hosts.bad
mv /tmp/hosts.$$ /etc/hosts
# fix up permissions while we are at it
chown root:wheel /etc/hosts
chmod 644 /etc/hosts

이 수정에 대한 환불 :

http://techpatio.com/2011/guides-how-to/fixed-mac-osx-lion-etc-hosts-bugs-dns


ive는 한동안이 문제를 쓰고 있습니다. 개발자 팀에서 일하면서 실제로 .dev 또는 .localhost 대신 .local을 지키기 때문에 가이드가 매우 유용하다는 것을 알았습니다.

iTand.me-Lion 로컬 도메인 및 기타 호스트 ..

요약해서 기재;

.local을 사용하는 경우 내가 가장 우아한 솔루션은 dscl 유틸리티입니다. 그것을 사용하는 것은 매우 간단합니다. mydev.local이라는 호스트를 추가하고 localhost를 가리 키려면 다음과 같이하십시오.

sudo dscl localhost -create /Local/Default/Hosts/mydev.local IPAddress 127.0.0.1

현재 정의 된 모든 호스트와 해당 IP를 보려면

sudo dscl localhost -list /Local/Default/Hosts IPAddress

호스트를 제거하려면 :

sudo dscl localhost -delete /Local/Default/Hosts/mydev.local

전반적으로 매우 간단하고 잘 작동합니다. 나는 여전히 / etc / 호스트를 편집 할 수 있기 때문에 원하지만 이것은 모든 .local 서버의 이름을 바꾸는 것보다 더 나은 대안입니다.


Snow Leopard에서 Lion으로 이동하기 전에 /etc/hosts다음과 같은 앱별 항목이 여러 개있었습니다 .

127.0.0.1 foo.bar.local

업데이트 후 로컬 앱을로드하는 것이 매우 느 렸습니다. 요청이 로그 파일에 표시되기 전에 지연이 발생했으며, 일단 발생하면 앱 자체가 평소처럼 빠르다는 것을 알았습니다.

이제 다음과 같이 앱당 두 줄이 있습니다.

127.0.0.1 foo.bar.local
::1       foo.bar.local

... 그리고 모든 것이 다시 빨라졌습니다.

분명히 이것은 IPv6 주소를 추가합니까? 나는 그것을 정말로 이해하지 못하지만 작동합니다.


내 상황은 비슷했지만 정확히 5 초의 지연은 '.local'로 끝나는 URL에서만 발생했습니다. '.dev'로 끝나는 사이트를 볼 때 지연이 없었습니다.

내 사무실의 다른 개발자 중 일부는이 문제가 있었지만 일부는 그렇지 않았습니다. 나는 간단한 수정을 원했고 다른 종속성으로 인해 사이트 이름을 '.local'로 바꾸고 싶지 않았습니다.

터미널에서 다음 명령을 실행하고 사무실의 다른 사용자와 내 출력을 비교했습니다.

scutil --dns

이 섹션은 유일한 차이점이었습니다.

resolver #2
  domain   : 00000000.members.btmm.icloud.com
  options  : pdns
  timeout  : 5
  order    : 150000

내 Mac이 내 iCloud 계정에 연결되었고 내 Mac으로 돌아 가기가 활성화되었습니다. Back To My Mac을 비활성화하면 추가 해결 프로그램이 사라지고 5 초 지연이 사라졌습니다.


와, 정말 악몽입니다. 나는이 주제에 대한 모든 것을 절대적으로 읽었으며 지금까지 제안 된 모든 것은 내가 경험 한 것과 거의 비슷했지만 어떤 해결책도 나를 위해 일하지 않았습니다.

그리고 그 이유를 알아 냈습니다.

다른 사람들과 달리 / etc / hosts를 사용하여 로컬 도메인을 설정하지 않았습니다. 내 / etc / hosts 파일은 루프백 인터페이스와 브로드 캐스트 호스트에 필요한 항목 만 포함 된 stock이었습니다. 게다가, 나는 emacs를 사용하여 명령 줄에서만 편집 할 수있는 사람이기 때문에 올바르게 인코딩 된 유닉스 파일이었습니다. 다행스럽게도 문제를 해결하기 위해 DNSmasq와 같은 자체 DNS 서버를 실행할 필요가 없었습니다.

(명확하게 말하면,이 문제를 겪게 된 증상은 emacs를 시작하는 데 약 10 초가 걸리지 만 내가 wifi에있을 때만 걸린다는 것입니다. wifi를 끄면 emacs가 예상대로 즉시 시작됩니다.)

내 솔루션 : 내 랩톱에는 "터미네이터"라는 이름이 있습니다. (예, 반짝이는 알루미늄 외관으로 인해 Arnold Schwarzenegger 캐릭터가 떠 오릅니다.) / etc / hosts에 머신 자체의 이름에 대한 항목을 추가하면됩니다.

127.0.0.1   terminator
::1         terminator

터미널에서 간단한 명령을 실행하여 호스트 이름을 찾았습니다.

hostname

... 출력 : "terminator"와 함께 돌아 왔습니다. 이 두 항목을 포함하도록 / etc / hosts를 변경 한 후 emacs는 이제 랩톱의 이름을 빠르게 확인할 수 있습니다.

누군가에게 도움이되기를 바랍니다.


나는 OSX Lion을 웹 개발 상자로 사용하여 속도 문제가 발생했습니다 ... 제안 조합을 사용하여 ipv6 네트워킹을 비활성화하고 ipv6을 localhost6로 라우팅하는 방법을 사용했습니다 ... 상황이 상당히 빨라졌습니다 ...

sudo networksetup -setv6off Ethernet

/ etc / hosts ...

127.0.0.1    localhost
127.0.0.1    dev.aliasdomain.com
... 
::1          localhost6 

몇 가지 버그 수정이 있었던 것 같습니다. 언급 된 많은 문제를 보았지만 현재 적용되는 것은없는 것 같습니다 (예를 들어, 한 줄에 여러 별칭을 배치하면 이제 잘 작동합니다).

어쨌든 Lion을 통해 Apple은 모든 DNS 조회를 처리하는 mDNSResponder를 대폭 변경했으며 (적어도 Lion에서는) / etc / hosts 캐싱도 처리합니다. 나를 위해 정방향 조회도 이제 작동합니다. 그러나 역방향 조회 (예 : google.com 대신 1.2.3.4 조회)는 작동하지 않습니다.

많은 고통 끝에 mDNSResponder가이 조회를 4.3.2.1.in-addr.arpa로 변환하고 이름 조회를 수행하는 것처럼 보입니다. 이것은 DNS가 선호하는 방식 일 수 있지만 / etc / hosts에서는 전혀 작동하지 않습니다.

물론 각 호스트에 대해 4.3.2.1.in-addr.arpa의 별칭을 추가하지 않는 한, 4.3.2.1은 이전에 사용하던 IP 주소와 반대 순서입니다. 이것은 나를 위해 모든 것을 수정합니다. 다음은 / etc / hosts 항목의 예입니다.

1.2.3.4 foo foo.example.com alias.example.com 4.3.2.1.in-addr.arpa

참고 URL : https://stackoverflow.com/questions/6841421/mac-osx-lion-dns-lookup-order

반응형