dnsmasq를 다시 시작하면 dnsmasq가 중단되고 resolv.conf가 계속 덮어 쓰기됩니다.


9

Debian Jessie를 실행 중이며 캐싱 DNS 서버로 dnsmasq를 구성하려고합니다. 나는 가이드 를 사용 하여 다음을 생각해 냈습니다 /etc/dnsmasq.conf.

listen-address=127.0.0.1
bind-interfaces
domain-needed
bogus-priv
no-hosts
dns-forward-max=150
cache-size=1000
neg-ttl=3600
resolv-file=/etc/resolv.dnsmasq
no-poll

수행은 sudo service dnsmasq restart실패하고 그것을 말해, 시작되지 않습니다

Mar 26 17:13:01 user dnsmasq[26743]: dnsmasq: syntax check OK.
Mar 26 17:13:01 user dnsmasq[26746]: dnsmasq: only one resolv.conf file allowed in no-poll mode.

좋아, 가이드에서 바로 구성이 실패한 것이 이상합니다. no-poll옵션이 제거되어 작동하는지 확인하겠습니다. 이번에는 정상적으로 시작되지만 DNS 확인은 분명히 실패합니다. 관련 파일 :

/etc/resolv.conf:

nameserver 127.0.0.1

/etc/resolv.dnsmasq:

nameserver 8.8.8.8

/var/run/dnsmasq/resolv.conf:

nameserver 127.0.0.1

dnsmasq가 이미 실행중인 동안 네임 서버 행을 추가하면 DNS 확인이 즉시 작동하기 때문에 세 번째 파일은 dnsmasq의 라이브 resolv.conf 파일 인 것으로 보입니다. 그래서 내 무시한 것 같습니다 /etc/resolv.dnsmasq. 나는 또한에 네임 서버 라인을 추가하는 시도 내 /etc/resolv.conf및 제거 resolv-file라인을 /etc/dnsmasq.conf하지만, 그것은 당신이하고시 위의 무엇을보고 즉시 overwritted됩니다 sudo service dnsmasq restart.

dnsmasq는 어떻게되며 dnsmasq는 캐싱 DNS 서버로 구성합니까?


1
정적 서버 만 원한다면 server=8.8.8.8dnsmasq 설정 을 넣지 않겠습니까?
tripleee 2012 년

나는 no-poll기본적으로을 무시한다고 말합니다 resolv-file. 시작할 때 어떤 파일이든 최신 파일이 필요하므로 /etc/resolv.conf변경 될 때 파일이 다시 작성되므로 사용자의 경우에 해당됩니다 .
tripleee

DNS 서버가 두 개 이상인 경우 올바른 방법이 무엇인지 여전히 알지 못하지만 귀하의 의견이 내 문제를 해결했다고 기쁘지 않습니다.
nullUser

답변:


11

의 시작 스크립트에서 버그가 수 있도록이 나타납니다 dnsmasq그 용도가 resolvconf로컬 루프백 인터페이스가 명시되지 않은 경우 로컬 리졸버를 소지품 except에 -ed /etc/defaults/dnsmasq파일.

짧은 대답은 당신이 추가 할 수 있다는 것입니다 ...

DNSMASQ_EXCEPT=lo

하는 /etc/defaults/dnsmasq문제를 해결합니다.

자세한 내용은이 질문을 참조하십시오.

/raspberrypi/37439/proper-way-to-prevent-dnsmasq-from-overwriting-dns-server-list-supplied-by-dhcp


이것은 내 생명을 구했습니다. 감사합니다.
Ryan Bobrowski

3

dnsmasq에 대한 업데이트가 있었다는 점을 제외하고는 bigjosh가 맞습니다. 이제 /etc/default/dnsmasq해싱 할 수 있는 옵션 이 있습니다.

IGNORE_RESOLVCONF=yes

이것이 Ubuntu 16.04의 복잡한 설정에서 작동하는 방식입니다.
Ikon

1
bigjosh의 길은 나를 위해 일했다. 비록 /etc/defaults/dnsmasq했다 IGNORE_RESOLVECONF=yes그것을하지 않았다이 문제를 해결하기 위해 주석을 해제하는 지침.
andho

2

사용하지 마십시오

resolv-file=/etc/resolv.dnsmasq

dns 서버를 dnsmasq.conf에 넣습니다.

server=/localnet/192.168.0.1 # change ip for your ip-server
server=8.8.8.8
server=8.8.4.4

dnsmasq.conf에 추가하십시오

no-resolv

1

그냥하는 dnsmasq가 할 수있는 캐시 전용 DNS 서버 및 아무것도 다른 공상을 원하는 경우에, 당신도 설치 나을 것 lwresd또는 unbound당신에게 캐시 전용 DNS 서버를 제공 주식의 기본 구성을 사용. 그런 다음 /etc/resolv.conf"nameserver 127.0.0.1"을 사용하도록 설정 하면됩니다.

좋은 점은이 두 패키지가 /etc/resolv.confdnsmasq가하는 것과 엉망이되지 않아 보다 깨끗한 솔루션 IMHO라는 것입니다. 일반적으로 resolvconf패키지를 제거하여 엉망이되지 않도록 할 수도 있습니다 /etc/resolv.conf.

참고로, dnsmasq는 너무 많은 종과 휘파람을 입었고 더 이상 대부분의 사람들에게 고통을 안겨줍니다. 내 책에서 KISS를 위반합니다.


불행하게도, 어떤 패키지에 의존 dnsmasq-base처럼, network-manager그리고 libvirt-bin완전히 없애하는 것이 항상 가능한 것은 아니다 (당신은 KVM을하고있는 경우), 그래서. 이 경우, 삭제 /usr/sbin/dnsmaq하고 하드 링크로 /bin/true만들어 항상 성공 (init 스크립트를 속이는 것) 한 다음 chattr +i /usr/sbin/dnsmasq업데이트되지 않도록 잠글 수 있습니다. 여러 랩톱에서이 작업을 수행해야했습니다.
milli

+1은 philandstuff.com/2013/11/07/dnsmasq-resolvconf.html에 설명되어 있습니다 . 게시물과 버그 보고서 후 5 년이 지나도 정말 역겨운 행동과 계속 통증을 유발합니다 ...
user2480144
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.