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
「bind-interfaces」を構成ファイルに追加する必要があったので、インターフェースとlisten-addressが望ましい効果を発揮しました。例えば。:
listen-address=127.0.0.1
interface=lo
bind-interfaces
これにより、localhostでのみ待機するという望ましい効果が得られます。サーバーのパブリックIPでパブリックDNS(自分のドメインのみを解決する)を実行していたため、問題が発生していましたが、ローカルホストでもDNSマスを実行したいと思っていました。したがって、「bind-interfaces」を削除すると、パブリックIPでリッスンしようとするため、「dnsmasq:ポート53のリッスンソケットの作成に失敗しました:アドレスはすでに使用されています」が表示されます。
はい、できます
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