NetworkManager プロセスによって dnsmasq が起動されたときに、NetworkManager または dnsmasq が 0.0.0.0 でリッスンするように構成することは可能ですか?
私は何を入れても気づいた/etc/NetworkManager/dnsmasq.d/00-example.confファイルは次のようになります:
listen-address=0.0.0.0
dnsmasq は NetworkManager によって次の引数で起動されます。
/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1 --cache-size=0 --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
どのように変更すればよいか--listenアドレスオプション ?
答え1
あなたはUbuntuを使っていると思いますが、ここで何が起きるかというとdnsmasqネットワークマネージャによって使用されるプラグインローカル DNS クエリをキャッシュするには、コマンド ラインで事前定義されている理由は次のとおりです。
--listen-address=127.0.0.1
そのため、あなたの設定を行うには地元ネットワークでは、上記のファイルの下の行をコメントアウトして、デフォルトのdnsmasqを無効にする必要があります。ネットワークマネージャ:
#dns=dnsmasq
完了したら、NMを再起動します。
systemctl restart NetworkManager
次に、標準dnsmasq のバージョンを入手し、独自の目的に使用してください。
補完的: 標準バージョンをサーバーの1つにインストールすると、これがDNSサーバーとなり、修理済みIPはネットワークにDHCPサーバーを使用しているため、最終的にDNSサーバーがそのすべてのipsだけでなく、ループバック (127.0.0.1) ** 設定ファイル **/etc/dnsmasq.conf の下に配置する必要があります:
listen-address=0.0.0.0
答え2
私もこれに苦労しました。おそらく Reda Salih が正しい答えを持っていると思います。しかし、私は NetworkManager を自分の思い通りに操作しようとしてすでに多くの時間を費やし、ようやくうまく動作するようになりました。私の答えを追加したいだけです:
- ホストに静的 IP があることを確認してください。DHCP を使用する場合 (静的割り当ての場合でも)、DnsMasq はローカル アドレスに別の DNS サーバーを使用するなど、望ましくない設定を取得します。
/etc/hosts
ローカル IP は読み込まれないので、 には入力しないでください。addn-hosts
別のファイルで オプションを使用してください。dhcp-option=3
この Dnsmasq ホストと異なる場合は、ゲートウェイを設定します(私のものは異なります)。- 設定しないでください
dhcp-option=6
(何をしているのかわかっている場合を除く) - NetworkManager によって強制された設定を上書きするには、 conf ファイルの設定
listen-addr
を使用できます。私の場合は に設定されていますが、これは と同等です。その他の設定 (dhcp-host など) は正常であり、追加の説明は必要ありません。interface
interface=eth0,lo
listen-addr=0.0.0.0