내 컴퓨터가 수행하는 모든 DNS 쿼리와 컴퓨터가 받는 응답에 대한 로그를 어떻게 생성합니까?
답변1
tcpdump
모든 포트 53 UDP 및 TCP 활동을 기록 할 수 있습니다 .
답변2
모든 DNS 요청을 표시 A
하고 파일에 저장하려면 다음 명령을 실행하십시오.
script -q -c "sudo tcpdump -l port 53 2>/dev/null | grep --line-buffered ' A? ' | cut -d' ' -f8" | tee dns.log
출력 예:
google.com.
wikipedia.org.
업데이트됨(2023년):변경된 출력 형식 tcpdump
; 도메인 이름이 필드 #8 대신 필드 #9에 있습니다.
고정 단일 라인:
script -q -c "sudo tcpdump -l port 53 2>/dev/null | grep --line-buffered ' A? ' | cut -d' ' -f9" | tee dns.log
답변3
가장 쉬운 방법은 Bind를 로컬에 설치하는 것입니다. 대부분의 배포판에서 Bind의 기본 설치는 비자동 캐싱입니다.
logging {}
다음과 같은 구성 블록을 추가하기만 하면 됩니다 .바인딩 9 구성 참조127.0.0.1
) 그런 다음 또는 ::1
DNS 확인자로 사용하도록 시스템을 설정합니다 .
답변4
관심 있는 요청에 대해 DNS를 필터링하는 간단한 방법은 다음 줄을 grep하는 것입니다. grep -A 2
그 뒤에 -A가 있고 그 뒤에 2줄이 있습니다. 서버에 DNS 요청이 많은 경우 2에서 4-5로 증가
tcpdump -l port 53 |grep -A 2 redis
두 번째 줄은 DNS -> IP, CNAME,none, other에 대한 답변입니다.