Linux環境でDNSサーバのIPアドレスを確認したいときがあると思います。しかし、 /etc/resolve.conf
の設定を確認するといった記事や、 dig
や nslookup
を使うといった記事が出てきますが、どうもうまくいきません。
今回は一発でDNSサーバを確認する方法をご紹介します。 systemd-resolved
を利用する方法です。
$ resolvectl status
結果は次のように表示されます。
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (ens3)
Current Scopes: DNS
Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 172.25.252.8
DNS Servers: 172.25.252.9 172.25.252.8
DNS Domain: openstacklocal
DNS Servers
にあるのが、設定されているDNSサーバのIPアドレスです。
次のようにGlobalで設定されている場合もあります。
Global
Protocols: -LLMNR -mDNS +DNSOverTLS DNSSEC=yes/supported
resolv.conf mode: stub
Current DNS Server: 1.1.1.1
DNS Servers: 1.1.1.1 1.0.0.1
Fallback DNS Servers: 8.8.8.8 8.8.4.4
Link 2 (ens3)
Current Scopes: DNS
Protocols: +DefaultRoute -LLMNR -mDNS +DNSOverTLS DNSSEC=yes/supported
Current DNS Server: 172.25.252.9
DNS Servers: 172.25.252.9 172.25.252.8
DNS Domain: openstacklocal
DNS関係は設定ファイルが複数あって複雑ですよ。Ubuntuだと確認した限りでも
-
resolvconf
:/etc/resolve.conf
-
netplan
:/etc/netplan/50-cloud-init.yaml
(同ディレクトリのYamlファイル全て) -
systemd-resolved
:/etc/systemd/resolved.conf
でDNSを設定可能です。
今回の resolvectl
コマンドを使えば全ての設定を参照してくれるので、一発でわかるというわけです。