動かざることバグの如し

近づきたいよ 君の理想に

Ubuntu 18.04以降でDNSサーバーを変更する方法

めっちゃハマった

環境

ネームサーバーを変更できない問題

DNSの変更は/etc/resolv.conf、という時代は古い。Ubuntu 17.04以降ではsystemd-resolvedがデフォルトで動作しているため、/etc/resolv.confを書き換えても変更されない

そもそも/etc/resolv.confは/run/resolvconf/resolv.confのシンボリックリンクになっている()

$ ls -l /etc/resolv.conf 
lrwxrwxrwx 1 root root 29  1月 15 11:13 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

UbuntuDNSサーバーを変更する方法

systemd-resolve --statusを実行すると現在の設定されているDNSサーバーが表示される。

変更したいときは /etc/systemd/resolved.confDNSの項目に追加する 複数ある場合は半角スペースで区切って追加

[Resolve]
DNS=8.8.8.8 8.8.4.4

で再起動して反映

systemctl restart systemd-resolved

再度systemd-resolve --statusを実行すると設定したネームサーバーに変わっている。

# systemd-resolve --status
Global
         DNS Servers: 8.8.8.8
                      8.8.4.4
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
(略)