長年、私はUbuntu(現在18.10)を使用して、ローカルテスト用にfoo.bar.localhost
などのドメインでPHPアプリケーションを開発しています。これらのドメインは127.0.0.1に解決され、Apache 2.4で処理されました。これは常に機能しました。127.0.0.1 localhost
という行は、いつものように/etc/hosts
にあります。
今日の朝、私は自分のデバイスの電源を入れましたが、これはもう機能しません。 ping localhost
はまだ機能していますが、ping foo.bar.localhost
は機能していません(昨日も機能していました)。驚いたことに、Chromiumはまだfoo.bar.localhost
を解決しています。DNS解決にOSを使用していないと思います。しかし、私は主にFirefoxを使用していますが、これもlocalhostサブドメインの解決を停止しました。
昨日はシステム関連の設定を変更していませんが、昨日のパッケージの更新を覚えているので、ネットワーク関連のいくつかの変更があったと思います。更新された正確なパッケージを見つけることができるように、dpgk
にインストール/更新日をリストする方法はありますか?
サブドメインの解決をシステム全体で再び機能させるには、どの設定をチェックすればよいですか?既知のバグはありますか?
追加情報:/var/log/dpkg.log
で、最近のエントリupgrade resolvconf:all 1.79ubuntu10 1.79ubuntu10.18.10.1
を見つけました。これ以降の行は、「解決」という用語を含む唯一の行です(cat /var/log/dpkg.log | grep resolv
で見つかります)。つまり、この数時間でこのDNS関連のパッケージが更新されました。
別の情報:マニュアルman systemd-resolved
には次の行があります:
ホスト名「localhost」および「localhost.localdomain」(および「.localhost」または「.localhost.localdomain」で終わるホスト名)は、IPアドレス127.0.0.1および:: 1に解決されます。
したがって、この明確に定義された動作は機能しなくなりました。また、私はこの低レベルのDNSに関連するものを自分で変更したことをできません。
ping foo.bar.localhost
を実行するときの正確なメッセージは
ping: foo.bar.localhost: Name or service not known
新しいバージョンのresolvconfで「修正された」唯一のバグは次のようでした: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/18179 ローカルの解決に関連しています。
問題はresolveconf
がsystemd-resolved
と一緒にインストールされていることでした。 root権限でapt-get purge resolvconf
によって削除しました。その後、すべてが再び機能しました。
両方をインストールしたのは、Ubuntuリリース間の以前のメジャーバージョンアップデートの残りであり、この奇妙な動作を引き起こしたと思います。