dnsmasqがresolv.confを変更しないように設定する

dnsmasqがresolv.confを変更しないように設定する

dnsmasqを(再)起動するたび/etc/resolv.confnameserver 127.0.0.1 ...

ただし、マシンがローカルDNSサービスを使用する必要はありません。 (なぜかと聞かないでください。全体的な環境がこんな感じです...)

実際にdnsmasqにアクセスするのをどのように妨げますか/etc/resolv.conf

削除resolvconfchattr +i /etc/resolv.confオプションではありません。

答え1

dnsmasq自体は、設定ファイルが存在し、dnsmasq -d -C <yourconfig>表示される内容から手動で起動した場合、resolv.confを変更しません。

この動作は、Debian や Ubuntu システムなどのディストリビューションの systemd デバイスで発生します。

dnsmasqを停止してこれら2行を編集してコメントアウトします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"

これは私にとって効果的です。

関連情報