.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アドレスを解決するために機能させるには何をする必要がありますか?
local
は、少なくともUbuntuでは、ある種の予約キーワードのようです。
address=/local/127.0.0.1
-動作しません。address=/loc/127.0.0.1
-動作します。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アップストリームリゾルバー構成を使用することもできます。
おそらくavahi-daemonはドメイン「local」を使用しています。見る:
https://unix.stackexchange.com/questions/352237/avahi-daemon-and-local-domain-issues
自分のマシンを指すだけで、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.local
computer2.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
の設定に基づいて動的に書き込まれます。