macos - 초기화 파일 호스트 맥Mac OSX Lion DNS 조회 순서



5 Answers

호스트 파일의 도메인 우선 순위와 관련하여 일부 상황에서는 IPv4 네트워크를 통해 도메인에 도달 할 수 없다는 것을 감지하면 Lion은 도메인의 IPv6 주소를 쿼리합니다.

나는 광고 도메인을 127.0.0.1 리디렉션했기 때문에 Snow Leopard에서 전에 보지 못했던 광고를 발견했을 때 이것을 발견했습니다. 나는 wireshark를 가동하고 IPv4 A 쿼리 (IPv4)에 따라 AAAA (IPv6 DNS 레코드) 쿼리를 확인했습니다. 광고 서버는 실제로 IPv6 주소를 가지고 있으며 자신의 콘텐츠를 제공 할 수있었습니다.

이것에 대한 해결책은

::1 mydomain.com

매회마다의 입장

127.0.0.1 mydomain.com

호스트 파일의 항목.

흥미롭게도 로컬 웹 서버가 127.0.0.1:80 실행되고 브라우저가 웹 서버 (오류 또는 기타)로부터 응답을 받으면 TCP 연결이 있었음을 만족하는 것처럼 AAAA 쿼리가 발행되지 않습니다 최소한 가능합니다.

관련 메모에서 호스트 파일 (애드 블럭킹, 로컬 웹 개발 등)을 많이 사용하는 경우 자신의 로컬 DNS 확인 프로그램을 실행하는 것이 좋습니다. 매 요청마다 /etc/hosts 를 읽어야하는 데 따른 상당한 디스크 / CPU 히트가 있으므로이 파일을 매우 가볍게 유지하는 것이 가장 좋습니다.

중요한 성능 향상 외에도 dnsmasq 과 같은 것을 실행하면 얻을 수있는 이점 중 하나는 전체 최상위 도메인을 로컬 시스템으로 다시 리디렉션 할 수 있다는 것입니다. 이렇게하면 /etc/hosts 로컬로 해석 할 모든 도메인을 개별적으로 입력 할 필요없이 개발 용 전체 * .dev 네임 스페이스를 가질 수 있습니다 (예 :).

mac hosts update

Mac OSX Lion으로 업그레이드 한 후에는 / etc / hosts가 더 이상 이름 확인을 위해 처음부터 찾지 않는다는 것을 알아 냈습니다. 이로 인해 다음과 같은 몇 가지 부작용이 발생합니다.

  1. / etc / hosts의 항목이 고통스럽게 느려지는 경우
  2. 기존 도메인을 재정의 할 수 없습니다 (예 : 127.0.0.1 www.google.com).
  3. DHCP에서 검색 도메인 항목을 얻으면 .lan을 말하게하고 재미있는 사람이 localhost.lan을 다른 것으로 구성한 다음 127.0.0.1 로컬 DNS에서 더 이상 localhost에 연결할 수 없습니다.

이 행동이 의도 된 것입니까? 어떤 의미가 있습니까? 가장 중요한 점은 어떻게 이전 행동으로 돌아갈 수 있는지입니다.




업데이트 (2) : OSX 10.10.5는 mDNSResponder 반환합니다.

업데이트 : OSX 10.10 요세미티가 mDNSResponder를 "discoveryd"로 대체했습니다. 내가 찾은 행동 w / r / t 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




Snow Leopard에서 Lion으로 이동하기 전에 다음과 같이 /etc/hosts 에 몇 가지 응용 프로그램 관련 항목이있었습니다.

127.0.0.1 foo.bar.local

업데이트 후 내 로컬 앱을로드하는 속도가 매우 느립니다. 요청이 로그 파일에 나타나기 전에 지연이 발생했음을 알았습니다. 일단 앱이 실행되면 앱 자체는 평소와 같이 빠릅니다.

이제 앱마다 두 줄이 있습니다.

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

... 그리고 모든 것이 다시 빠릅니다.

분명히 이것은 IPv6 주소를 추가합니까? 나는 그것을 정말로 얻지 못한다. 그러나 그것은 효과적이다.




와우, 얼마나 악몽인가. 나는이 주제에 대해 절대적으로 모든 것을 읽었으며, 지금까지 제안 된 모든 것들은 내가 경험했던 것과 비슷하지만, 그 해결책들 중 어느 것도 나를 위해 일하지 않았다.

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

다른 사람들과 달리 / etc / hosts를 사용하여 로컬 도메인을 설정하지 않았습니다. 내 / etc / hosts 파일은 재고 였고 루프백 인터페이스 및 브로드 캐스트 호스트에 필요한 항목 만 포함되었습니다. 게다가 그것은 올바르게 인코딩 된 유닉스 파일이었다. 나는 이맥을 사용하여 명령 행에서 편집하는 사람 일 뿐이다. 그리고 선량에게 감사드립니다. 문제를 해결하기 위해 DNSmasq과 같은 자체 DNS 서버를 사용해야 할 필요가 없었습니다.

(분명히이 이슈에 나를 데려온 증상은 emacs가 시작하는데 약 10 초가 걸렸을 뿐이며, 내가 wifi에있을 때만 그렇다 .wifi를 끄면 이맥스는 예상대로 즉시 시작될 것이다.)

내 솔루션 : 내 랩톱에는 "종결 자"라는 이름이 있습니다. (네, 그 반짝이는 알루미늄 외관으로 인해 Arnold Schwarzenegger의 성격이 생겼습니다.) 기계 자체의 이름을 위해 / etc / hosts에 항목을 추가하기 만하면되었습니다.

127.0.0.1   terminator
::1         terminator

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

hostname

... 출력과 함께 나온 "종결 자". 이 두 항목을 포함하도록 / etc / hosts를 변경하면 emacs는 이제 내 랩톱 이름을 빨리 해결할 수 있습니다.

나는 이것이 누군가를 돕기를 바랍니다.




버그 수정이있었습니다. 내가 언급 한 많은 문제를 봤는데, 이들 중 어느 것도 현재 적용되지 않는 것처럼 보입니다 (예를 들어, 한 줄에 여러 개의 별칭을 입력하면 현재 잘 작동합니다).

어쨌든 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




Related