web-dev-qa-db-ja.com

dnsmasqが.localアドレスを127.0.0.1にポイントするように機能していません

.localを指す127.0.0.1アドレス(test.localなど)を取得したいのですが、機能していません。私は最新のUbuntuを使用しています。 /etc/NetworkManager/NetworkManager.confで、dns=dnsmasqをコメントアウトしてから、Sudo service network-manager restartをコメントアウトしました。

次に、dnsmasqをインストールし、address=/local/127.0.0.1を/etc/dnsmasq.d/mycustomfileに追加してからSudo service dnsmasq restartを実行しました。私が述べたことを除いて、私は他の変更をしませんでした。

しかし、test.localにアクセスすると、127.0.0.1に解決されず、その.localアドレスのpingを実行しても成功しません。 /etc/resolv.confの内容が関連している可能性がありますが、これは私が変更しなかったデフォルトです。

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 222.11.22.36
nameserver 222.11.22.37

これは、デーモンとしてではなくdnsmasqを実行した場合の出力です。

$ Sudo dnsmasq --no-daemon     
dnsmasq: started, version 2.68 cachesize 150
dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth
dnsmasq: reading /etc/resolv.conf
dnsmasq: using nameserver 222.11.22.37#53
dnsmasq: using nameserver 222.11.22.36#53
dnsmasq: read /etc/hosts - 9 addresses

Dnsmasqが実行されている場合、/ etc/resolv.confは自動的に更新されます(dnsmasqが停止すると、上記のエントリに戻ります)。

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1

この:

$ Sudo nslookup test.local 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   test.local
Address: 127.0.0.1

ただし、ローカルホストへのpingを実行しても機能しません。

Dnsmasqが.localアドレスを解決するために機能させるには何をする必要がありますか?

4
user779159

localは、少なくともUbuntuでは、ある種の予約キーワードのようです。

  • address=/local/127.0.0.1-動作しません。
  • address=/loc/127.0.0.1-動作します。
6
Dmitri

Dnsmasqが正しく起動しているようです。 dnsmasqがnslookup test.local 127.0.0.1で正しく機能しているかどうかをテストする必要があります。

システムがdnsmasqを使用していることを確認するには、最初のオプションとして/etc/resolv.confを使用するようにnameserver 127.0.0.1を更新する必要があります。

--resolv-file=/etc/resolv.conf.dnsmasqを使用してdnsmasqでcustoアップストリームリゾルバー構成を使用することもできます。

7
denisvm

おそらくavahi-daemonはドメイン「local」を使用しています。見る:

https://unix.stackexchange.com/questions/352237/avahi-daemon-and-local-domain-issues

1
morrizon

自分のマシンを指すだけで、dnsmasqを使用して他のコンピューターのDNS解決を制御しようとしない場合は、実際には/etc/hostsにいくつかのエントリを追加するだけです。 dnsmasqとその設定に対するすべての変更を元に戻し、/etc/hostsの上部に次のものがあることを確認することをお勧めします。

127.0.0.1 localhost
127.0.1.1 mycomputername mycomputername.local anothername.local

この後、mycomputername.localにpingを実行すると、自分自身がポイントされます(実際には、127.0.1.1で実行されているdnsmasqサーバーがポイントされ、次にlocalhostがポイントされます)。ネットワーク上の他のコンピューターのエントリを追加して、このマシンでは、コンピューターをcomputer1.localcomputer2.localなどとして参照できるようにすることもできます。

192.168.1.31 computer1.local
192.168.1.32 computer2.local

Dnsmasqで変更を元に戻せないように思われる場合は、localhostの後にこれらのエントリを追加できますが、localhostエントリ自体を削除または変更しないでください。だからこのように:

127.0.0.1 localhost mycomputername mycomputername.local anothername.local

ところで:Ubuntuデスクトップでresolv.confを変更する適切な方法は、タスクバーのネットワークマネージャーを使用することです。 Ubuntuサーバーでの適切な方法は、ネットワークデバイスの下のdns-nameserver/etc/network/interfacesエントリを追加し、再起動するか、ifdown eth0 && ifup eth0を実行することです。 /etc/resolv.confの警告にあるように、直接変更しないでください。/etc/network/interfacesの設定に基づいて動的に書き込まれます。

0
brianclements