dnsmasq가 resolv.conf를 변경하지 않도록 설정

dnsmasq가 resolv.conf를 변경하지 않도록 설정

dnsmasq를 (다시) 시작할 때 /etc/resolv.conf마다 nameserver 127.0.0.1 ....

그러나 머신이 로컬 DNS 서비스를 사용할 필요는 없습니다. (왜냐고 묻지 마세요. 전체적인 환경이 이렇습니다...)

실제로 dnsmasq에 접속하는 것을 어떻게 막나요 /etc/resolv.conf?

삭제 resolvconfchattr +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.conf127.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

  1. systemctl disable resolvconf.service
  2. systemctl stop resolvconf.service
  3. rm -f /etc/resolv.conf
  4. echo 'nameserver 8.8.8.8' > /etc/resolv.conf # or any other IP you want to use as DNS server
  5. systemctl restart dnsmasq.service # just for testing
  6. 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"

이것은 나에게 효과적입니다.

관련 정보