質問: vagrant/virtualbox で ubuntu 16.04 を動かしています。 以前投稿した質問の中に、ドメイン名解決ができなくなる場合があり、その場合には /etc/resolv.conf の中で nameserver の指定を 8.8.8.8 にすればひとまず解決する、というものでした。 参照: PCをスリープさせると、 vagrant からホスト名の解決ができなくなる これで、問題が発生した場合には /etc/resolv.conf を 8.8.8.8 に書き換えることで対処していたのですが、ふと気づくと、ここの値が、勝手にもともとの値である 10.0.2.3 (デフォルトの nameserver, たまに動かなくなる) に書き換わっていることに気がつきました。 おそらく、 `resolv.conf` の中で、「このファイルはその他もろもろによって自動生成されるよ」と書いてあること、また、デフォルトの nameserver はおそらく VirtualBox が提供している DNS を利用しているのではないか、と考えていて、だとすると VirtualBox (もしくは vagrant の設定)が、これを書き換えているのかな、と思っています。 質問: * VirtualBox/Vagrant の構成で、「たまに 10.0.2.3 の DNSサーバーが動かなくなる」を、恒久的に対応したいと考えています。 VirtualBox/Vagrant の設定で、利用する DNS を 8.8.8.8 に指定できるのではないか、と考えているのですが、これを行う方法などありますでしょうか?
回答: > > おそらく、 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 ``` の事でしたら、「/etc/resolvconf/resolv.conf.d/tail」というファイル(もしなければ作る)に以下のように記述します。 ``` nameserver 8.8.8.8 ``` 再起動で反映されると思いますが、上記の設定をすぐに反映させるには、以下のコマンドを実行してください。 ``` sudo resolvconf -u ``` ついでに、DNSの不具合について。 自分はデスクトップPCにlinuxmintを使用していますが、起動直後に名前解決ができないことがありました。(二度目はちゃんと動作する) どうやらdnsmasqというものが悪さをしているという話を聞いたので、「/etc/NetworkManager/NetworkManager.conf」の以下の行を以下のようにコメントアウトすると、名前解決ができるようになりました。 ``` #dns=dnsmasq ``` もちろん、変更したらNetworkManagerの再起動が必要です。 ご参考になるかわかりませんが、一応追記しておきます。 (本当はこちらを最初に回答として書こうと思っていましたが) なお、dnsmasqはubuntu16.10では使われなくなったそうです。