39223
vagrant/virtualbox で ubuntu 16.04 を動かしています。
以前投稿した質問の中に、ドメイン名解決ができなくなる場合があり、その場合には /etc/resolv.conf の中で nameserver の指定を
8.8.8.8 にすればひとまず解決する、というものでした。 参照: [PCをスリープさせると、 vagrant
からホスト名の解決ができなくなる](https://ja.stackoverflow.com/q/36394/754)

これで、問題が発生した場合には /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 に指定できるのではないか、と考えているのですが、これを行う方法などありますでしょうか？
CC BY-SA 3.0
2017-11-01T03:12:09.950
39196
2017-11-03T09:47:38.160
754
question
ubuntu vagrant virtualbox
virtualbox/vagrant で、 /etc/resolv.conf での nameserver が 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では使われなくなった](https://kledgeb.blogspot.jp/2016/06/ubuntu-1610-7-dnssystemd-
resolved.html)そうです。
CC BY-SA 3.0
2017-11-01T15:06:41.820
39223
2017-11-03T09:47:38.160
2017-11-03T09:47:38.160
15473
15473
39196
answer