dnsmasq를 (다시) 시작할 때 /etc/resolv.conf
마다 nameserver 127.0.0.1 ...
.
그러나 머신이 로컬 DNS 서비스를 사용할 필요는 없습니다. (왜냐고 묻지 마세요. 전체적인 환경이 이렇습니다...)
실제로 dnsmasq에 접속하는 것을 어떻게 막나요 /etc/resolv.conf
?
삭제 resolvconf
도 chattr +i /etc/resolv.conf
옵션이 아닙니다 .
답변1
dnsmasq 자체는 구성 파일이 있고 dnsmasq -d -C <yourconfig>
표시되는 내용을 통해 수동으로 시작하는 경우 resolv.conf를 변경하지 않습니다.
이 동작은 데비안과 우분투 시스템 및 기타 배포판의 systemd 장치에서 발생합니다.
dnsmasq를 중지하여 이 두 줄을 편집하고 주석 처리합니다 sudo systemctl stop dnsmasq
. 그렇지 않으면 변경된 /etc/resolv.conf가 복원되지 않기 때문입니다./etc/systemd/system/multi-user.target.wants/dnsmasq.service
#ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf
#ExecStop=/etc/init.d/dnsmasq systemd-stop-resolvconf
구현하다sudo systemctl daemon-reload
나중에 dnsmasq를 시작할 수 있으며 /etc/resolv.conf 파일은 dnsmasq에 의해 변경되지 않습니다.
답변2
dnsmasq
다른 resolv.conf
파일을 사용할 수 있으므로 /etc/resolv.conf
127.0.0.1을 가리키면 dnsmasq
실제로는 다른 파일을 사용 resolv.conf
하고 /etc/resolv.conf
동일하게 유지됩니다.
파일 에 다음 줄을 추가합니다 dnsmasq.conf
.
resolv-file=/etc/dnsmasq.d/dnsmasq-resolv.conf
/etc/dnsmasq.d/dnsmasq-resolv.conf
그런 다음 다음과 같이 파일을 만듭니다 .
nameserver 208.67.222.222
nameserver 208.67.220.220
답변3
systemctl disable resolvconf.service
systemctl stop resolvconf.service
rm -f /etc/resolv.conf
echo 'nameserver 8.8.8.8' > /etc/resolv.conf # or any other IP you want to use as DNS server
systemctl restart dnsmasq.service # just for testing
cat /etc/resolv.conf # just to verify
컴퓨터는 DHCP를 통해 DNS 서버 주소를 얻을 수 없지만 문제는 해결됩니다.
답변4
나는 같은 문제에 직면했습니다. Debian Bullseye에서 resolvconf가 설치되면(제 기억이 맞다면 기본적으로) dnsmasq는 이런 식으로 동작합니다. 파일 을 편집하고 다음 줄의 주석 처리를 제거해야 합니다 /etc/default/dsnmasq
.
# If the resolvconf package is installed, dnsmasq will tell resolvconf
# to use dnsmasq under 127.0.0.1 as the system's default resolver.
# Uncommenting this line inhibits this behaviour.
#DNSMASQ_EXCEPT="lo"
입력하다
# If the resolvconf package is installed, dnsmasq will tell resolvconf
# to use dnsmasq under 127.0.0.1 as the system's default resolver.
# Uncommenting this line inhibits this behaviour.
DNSMASQ_EXCEPT="lo"
이것은 나에게 효과적입니다.