DNSネームサーバーをオーバーライドしたい場合は、 base
にこれに似た行を追加するだけです resolv.conf.d
の下のファイル .
例
$ sudo vim /etc/resolvconf/resolv.conf.d/base
次に、ネームサーバー リストを次のように入力します。
nameserver 8.8.8.8
nameserver 8.8.4.4
最後に resolvconf
を更新します :
$ sudo resolvconf -u
resolvconf
の man ページを見ると、 /etc/resolvconf/resolv.conf.d/
の下のさまざまなファイルについて説明します .
/etc/resolvconf/resolv.conf.d/base
File containing basic resolver information. The lines in this
file are included in the resolver configuration file even when no
interfaces are configured.
/etc/resolvconf/resolv.conf.d/head
File to be prepended to the dynamically generated resolver
configuration file. Normally this is just a comment line.
/etc/resolvconf/resolv.conf.d/tail
File to be appended to the dynamically generated resolver
configuration file. To append nothing, make this an empty
file. This file is a good place to put a resolver options line
if one is needed, e.g.,
options inet6
head
の先頭に警告がありますが、 ファイル:
$ cat /etc/resolvconf/resolv.conf.d/head
# 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
この警告は、これらのファイルが構築されるときに警告が最終的に結果の resolv.conf
に反映されるようにするためのものです。 これらのファイルを使用して作成されるファイル。したがって、 nameserver
を簡単に追加できます base
について上記で説明した行 ファイル、head
に ファイルも。
参考文献
- ubuntu 14.04 の永続的な DNS ネームサーバー
- resolv.conf を使用して DNS サーバーを追加するにはどうすればよいですか?
私もこの質問に興味があり、@sim で提案された解決策を試しました。
それをテストするために、私は入れました
nameserver 8.8.8.8
/etc/resolvconf/resolv.conf.d/base
で そして
nameserver 8.8.4.4
/etc/resolvconf/resolv.conf.d/head
で
次に、ネットワークを再起動しました
sudo service network-manager restart
結果は /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 8.8.4.4
nameserver 127.0.1.1
と nm-tool
dnsserver は
DNS: 208.67.222.222
DNS: 208.67.220.220
これはルーターによって提供されたものです。一方、アドレスを掘り下げると、それがわかります
;; Query time: 28 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
私が正しければ、これらすべてから次のように結論付けます
<オール>全体として、それは機能しますが、求められた意図した結果ではないと思います。より近い解決策は次のとおりです。編集
sudo vim /etc/dhcp/dhclient.conf
次に追加
supersede domain-name-servers 8.8.8.8;
結果は次のとおりです:resolv.conf には 127.0.0.1 しか含まれていません。これは、dnsmasq キャッシュが呼び出され、nm-tool が言うことを意味します
DNS: 8.8.8.8
つまり、検索された名前がキャッシュにない場合、dhcp によって提供されるサーバーではなく、8.8.8.8 で要求されます。
別の (おそらくより良い) オプションは、"supersede" の代わりに "prepend" を使用することです:この方法では、名前が 8.8.8.8 までに解決されない場合、リクエストは他のサーバーにフォールバックします。実際、nm-tool は
DNS: 8.8.8.8
DNS: 208.67.222.222
DNS: 208.67.220.220
dnsmasq
のネームサーバーを変更できることがわかりました /etc/dnsmasq.conf
に次の行を追加して使用します :
server=8.8.8.8
server=8.8.4.4
/etc/dnsmasq.conf
を持っていませんでした ファイルは dnsmasq パッケージによってインストールされますが、Ubuntu には dnsmasq-base しか付属していないためです。 sudo apt-get install dnsmasq
を実行しました 、次に /etc/dnsmasq.conf
を編集しました 、次に sudo service dnsmasq restart
と sudo service network-manager restart
.
sudo tail -n 200 /var/log/syslog
を実行しました syslog をチェックして dnsmasq
であることを確認するには 私が指定したネームサーバーを使用していました:
Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.8.8#53
Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.4.4#53