こういう作業って一年に2回あればいい方で大抵忘れる.
よくわからなかったら↓ が一番わかりやすい(英語). 大本のドキュメント読むの基本ですよね…
Ubuntu 16.10より前
https://wiki.debian.org/NetworkConfiguration
Ubuntu 16.10以降
https://wiki.archlinux.org/index.php/Systemd-resolved
普通に調べると、QiitaやStackOverflowやブログでまちまちで結局どれやるんだよってなる…
ってことでDNSを登録する作業
作業のポイントまとめ
大前提
- Ubuntuは16.10より前はdnsmasq, 16.10からSystemd-resovledがDNS解決のソフトとして使われるようになった.
- /etc/hostsは一番原始的.(DNSの設定をするためではない.ドメイン名⇔ipアドレス)
まずUbuntu 16.10より前の場合(dnsmasq)は
- /etc/resolv.confはいじらない(変えても下ので自動生成されたときに消えます)
- /etc/resolvconf/resolv.conf.d/tailを作って編集(これを編集すればいい)
- nameserver dnsのipアドレス って記入すればok
- sudo resolvconf -u を実行してください.(/etc/resolv.confが変わっているはず)
- /etc/network/interfacesは上記を上書く.こっちで編集してもいい(UIで編集するのと同じ. UbuntuのNetworkManagerが管理.)
- https://wiki.debian.org/NetworkConfiguration#The_resolv.conf_configuration_file が詳しい
これでいいはず.
まずUbuntu 16.10以降(systemd-resolved)は
- /etc/systemd/resolved.confを書き換えればいい.
- DNS=xxx.xxx.xxx.xxx にすればいい
- /etc/resolv.confは上記にシンボリックリンクを張っている
- またもNetworkManagerの/etc/network/interfacesの方によって設定は上書きされる
- https://wiki.archlinux.org/index.php/Systemd-resolved が詳しい
赤字のところを行えばDNSは適切に設定される.
デバッグするときに使えるコマンド
nslookup ドメイン名 DNSのipアドレス
ex) nslookup google.com xxx.xxx.xxx.xxx
ちゃんとDNSが設定されたらドメイン名からipアドレスに変えられるよね?ってのを確認.
いつもはnslookup ドメイン名 でipアドレスを確認することが多いけど、これもなかなか使える気がする.
これが通れば、あとはシステムにちゃんと設定すればいいだけ
systemd-resolve –status
今どのdnsがシステムで使われているかを確認する.
このコマンドは18.04とかより以前だと–statusのオプションがなく, no option “–status”みたいなことが言われてしまう.
nmcli device show <interfacename> | grep IP4.DNS
ex) nmcli device show eth0 | grep IP4.DNS
とかで出るはず
ifconfig
はよく出るのでご存知かと思いますが…
digとかは使わず…
参考
https://askubuntu.com/questions/152593/command-line-to-list-dns-servers-used-by-my-system