macOS에서 호스트 규칙이 정의된 위치 찾기

macOS에서 호스트 규칙이 정의된 위치 찾기

내 시스템이 특정 도메인의 IP 주소를 어떻게 파생하는지 알아낼 수 있는 방법이 있습니까? 내 컴퓨터에서 pingAnalytics.google.com을 반환하면 127.0.0.1어떻게 이 결과가 나오는지 알 수 없습니다. 내 /private/etc/hosts파일은 기본 상태입니다.

시스템이 해당 주소에 어떻게 도착했는지 알 수 있는 방법이 있나요? 예를 들어, 다른 호스트 파일, DNS 또는 다른 것에서 오는 것입니까?

답변1

dtrace실제로는 아닙니다 . 시스템을 통해 수행되는 작업을 확인할 때까지는 그렇지 않습니다 . dtrace너 없이는 할 수 없어파기출처가 무엇인지 주위를 둘러보세요.

DNS 서버에서 오는 건가요? (또한 @다른 공용 DNS 서버를 사용해 보고 영역이 있는 로컬 캐싱 네임서버와 같은 로컬 DNS 속임수가 있는지 확인 analytics.google.com하거나 일부 방화벽이 패킷을 로컬 ns로 리디렉션하고 있는지 확인하세요...)

$ grep nameserver /etc/resolv.conf
nameserver 192.168.96.1
$ dig +short @192.168.96.1 analytics.google.com
...
$ dig +short @8.8.8.8 analytics.google.com
...

mDNS 시스템에 대한 아이디어는 무엇입니까(DNS를 폴링할 수도 있고 WireShark를 실행 하고 포트 또는 포트 DNS 패킷을 tcpdump찾아 무엇이 나타나는지 확인)535353

$ dns-sd -q analytics.google.com
...
^C

Apple이 캐시하는 내용이 표시됩니다. 이는 Appleland에서 다른 경우 DNS와 다를 수 있습니다.

$ dscacheutil -q host -a name analytics.google.com
...

그렇다면 이상한 것들의 캐시를 지우는 문제입니다 ...

$ dscacheutil -flushcache

그런 다음 위의 상황이 존재하는지 확인 dns-sd하거나 dscacheutil -q host다른 상황을 보고하십시오. 항목이 파일에 있는 경우 캐시를 지운 후 dtrace 스크립트를 실행하면 opensnoop파일이 열려 있음이 표시됩니다. 관련 레코드가 있는지 조회한 후 내용을 조사합니다.

관련 정보