dnsmasq로 인해 호스트에서 발행한 DNS 쿼리를 확인할 수 없게 됩니다.

dnsmasq로 인해 호스트에서 발행한 DNS 쿼리를 확인할 수 없게 됩니다.

헤드리스 Ubuntu 14.04 바닐라 머신에서 다음 구성을 사용하여 dnsmasq를 DNS 프록시로 설정했습니다./etc/dnsmasq.conf

no-resolv
nameserver=<some working custom dns ip>
port=5555 #to circumvent my ISP's DNS hijacking

dnsmasq 서비스가 시작될 때마다 호스트는 호스트 이름을 확인하는 기능을 잃게 되지만 dnsmasq는 외부 쿼리를 정상적으로 해결합니다. /etc/resolv.conf를 확인하면 한 줄만 표시됩니다.

nameserver 127.0.0.1

그래서 네임서버를 추가 /etc/resolvconf/resolv.conf.d/base하고 컴퓨터를 다시 시작했습니다. 추가된 네임서버가/etc/resolv.conf

답변1

질문이 여러 가지인 것 같아요.

우선: port=5555- 이는 dnsmasq프로세스가 UDP(TCP일 수도 있음) 포트 5555에서 DNS 쿼리를 수신한다는 의미입니다. 모든 DNS 클라이언트는 dnsmasq이 포트에서 쿼리해야 하며 그렇지 않으면 응답을 받을 수 없습니다. ISP의 DNS 하이재킹은 여기서 중요하지 않습니다. 다음 질문 때문에 비표준 포트를 구성하고 싶지 않은 것 같습니다.

둘째, 이 파일은 /etc/resolv.conflibc 해석기를 사용하여 DNS를 수행하는 프로세스가 프로세스를 찾기 위해 읽는 파일입니다 dnsmasq. 이것은 "Headless Ubuntu 14.04" 시스템의 프로세스를 위한 것입니다. 이 nameserver 127.0.0.1줄은 이 파일에 적합합니다. 이미 포트 5555에서 수신 대기 중이므로 dnsmaq다른 프로세스가 쿼리에 사용하는 포트 번호를 해당 파일에 지정할 수 있습니다 dnsmasq. 구글링 후 보니OpenBSD의 libresolv는 비표준 포트를 지정할 수 있습니다/etc/resolv.conf, 그러나 일반 파서가 이것을 읽을 수 있는지는 모르겠습니다. 한번 시도해 보세요. 사용: nameserver 127.0.0.1:5555차이가 있는지 확인합니다. 다음과 같은 것을 사용하십시오 ping www.google.com- libc 파서를 사용하여 "www.google.com"이라는 이름의 IP 주소를 얻습니다.

셋째, 일부 ISP의 DNS 하이재킹을 해결하려는 경우 53이 아닌 포트에서 수신 대기하는 전 세계 어딘가의 DNS 서버를 찾아야 합니다. 이 구성은 존재하지 않는 것 같습니다.DNS 하이재킹 우회에 대한 블로그 게시물이것을 주요 장애물로 나열하십시오. 여기서는 무엇을 추천해야 할지 모르겠지만, 궁극적으로 dnsmaq그런 서버를 어디서 찾을 수 있는지 알려줘야 하고, 파일은 대개 /etc/dnsmasq.resolv.

답변2

function 을 제외한 return 0모든 항목을 제거합니다 .start_resolvconf()/etc/init.d/dnsmasq

관련 정보