web-dev-qa-db-ja.com

dnsmasq DNSをlocalhost(127.0.0.1)だけにバインドする

Dnsmasq DNSサーバーの構成について質問します。 「listen-address」などの構成オプションについて知っています。しかし、このオプションを "listen-address = 127.0.0.1"に設定しても、dnsmasqは内部127.0.0.1:53と外部192.168.x.x:53の両方の側でポートを開いたままです。

たとえば、MySQLデータベースの場合のように、ローカルホスト(127.0.0.1)の場合のみ、ポート53を開くようにdnsmasqを構成できるかどうかを確認します。

# Configuration file for dnsmasq.

port=53
proxy-dnssec
no-resolv
no-poll
server=127.0.0.1#[some port here]
server=127.0.0.1#[some another port here]
listen-address=127.0.0.1
no-hosts
1
D.K.

「bind-interfaces」を構成ファイルに追加する必要があったので、インターフェースとlisten-addressが望ましい効果を発揮しました。例えば。:

listen-address=127.0.0.1
interface=lo
bind-interfaces

これにより、localhostでのみ待機するという望ましい効果が得られます。サーバーのパブリックIPでパブリックDNS(自分のドメインのみを解決する)を実行していたため、問題が発生していましたが、ローカルホストでもDNSマスを実行したいと思っていました。したがって、「bind-interfaces」を削除すると、パブリックIPでリッスンしようとするため、「dnsmasq:ポート53のリッスンソケットの作成に失敗しました:アドレスはすでに使用されています」が表示されます。

8
shapecatcher

はい、できます

Dnsmasqのmanページには、-interface引数について次のように記載されています。

 -i, --interface=<interface name>
          Listen only on the specified interface(s). Dnsmasq automatically adds the loopback (local) interface to the list of interfaces  to  use
          when  the  --interface option  is used. If no --interface or --listen-address options are given dnsmasq listens on all available inter‐
          faces except any given in --except-interface options. IP alias interfaces (eg "eth1:0") cannot be used with  --interface  or  --except-
          interface  options,  use  --listen-address  instead.  A  simple  wildcard, consisting of a trailing '*', can be used in --interface and
          --except-interface options.

ほとんどのシステムでは、localhost/127.0.0.1のインターフェース名はデフォルトでloになります。

あなたはそれをあなたの設定ファイルにそのように置くことができます

interface=lo

または、コマンドラインで次のように指定します

dnsmasq --interface=lo
2
Ryan Babchishin