私のシステムで使用されているDNSサーバーを一覧表示するコマンドライン

私のシステムで使用されているdnsサーバーを一覧表示するコマンドはありますか?

私は試した

$ cat /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 OVERWRITTENnameserver 127.0.0.1$ cat /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8)auto loiface lo inet loopback

「Network Manager GUIツール」に移動すると、ワイヤレスセクションに「DNS192.168.1.1 8.8.8.8 8.8.4.4」が表示されます。

コマンドラインから同じ情報を取得できますか?

私はUbuntu12.04LTSを使用しています

resolv。confは、自分で実装しない限り、実際にはもう使用されません。 ネットワークマネージャは今それを行います。 OpenDNSからGoogleのopen DNSに切り替えることがあるため、システム上のDNSサーバーを一覧表示するエイリアスを作成しました。

>Ubuntu=15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntuの<=14

nmcli dev list iface <interfacename> | grep IP4

私の場合は, <interfacename>eth0 これは一般的ですが、必ずしもそうではありません。

これがあなたが望むものかどうかを確認してください。

編集:

私はresolvだと思います。ネットワークマネージャーが127.0.0.1をリッスンするサーバーを作成するため、confは実際には間接的に使用されますが、これはカウントされるべきではない実 このエントリの前にDNSアドレスを入力すると、使用される可能性があると思いますが、これがどのように機能するのか正確にはわかりません。 可能であれば、ほとんどの場合、ネットワークマネージャを使用するのが最善だと思います。

Ubuntu18.04および20.04では、次のものを使用できます systemd-resolve --status

これはUbuntu13.10以前で有効です。 Ubuntu14.04以降の場合は、以下を参照してください Koala Yeungの答え:14.04以降のUbuntuでどのDNSを使用しているかを知る方法


使用

nm-tool

次のような出力が得られます

NetworkManager ToolState: connected (global)- Device: eth0  [Wired connection 1] -------------------------------------------  Type:              Wired  Driver:            e1000e  State:             connected  Default:           yes  HW Address:        00:11:22:33:44:55  Capabilities:    Carrier Detect:  yes    Speed:           1000 Mb/s  Wired Properties    Carrier:         on  IPv4 Settings:    Address:         10.21.6.13    Prefix:          24 (255.255.255.0)    Gateway:         10.21.6.1    DNS:             10.22.5.133    DNS:             10.22.5.3

または、DNSだけを見るには

nm-tool | grep DNS

二つのトップスコアの答え, nmcli dev list iface <interfacename> | grep IP4nm-tool どちらもnetwork-managerが制御されていると仮定します。 それがある-少なくともほとんどの時間のデスクトップマシン上で。 しかし、より完全な答えは、時にはnetwork-managerが制御されていないということです。 例えば vpnc メチャクチャなことをして /etc/resolv.conf 直接。

したがって、最初に127.0.0.1/localhostが使用されているかどうかを確認します。 これは次のようにして行うことができます dig:

> dig something.unknown  | grep SERVER:;; SERVER: 127.0.0.1#53(127.0.0.1)

今、あなたは私たちが知っている あります localhostを使用しています。 人気のある答えの一つで先に行きます。 私は好きです:

> nm-tool | grep DNS:    DNS:             8.8.8.8

しかし、127.0.0.1/localhostが ない を使用して、その後、 nm-tool'sと nmcliの出力は誤解を招くことになります:

> dig something.unknown  | grep SERVER:;; SERVER: 172.22.216.251#53(172.22.216.251)> nm-tool | grep DNS:    DNS:             8.8.8.8

ここでは、, dig が正しいと nm-toolの情報は誤解を招く。 実際には、私がVPN-edした環境にローカルなアドレスは正しく解決されます。 GoogleのDNSはすべて 8.8.8.8 そうではありません 知っています。

これは、VPNに接続した後に、次のようにするためです。 vpnc、それは行を入れます /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 OVERWRITTENnameserver 1.2.3.4nameserver 127.0.0.1search MyDomain

cat /etc/resolv.conf DNSサーバーを表示する必要があります。

あなたは変更することはできません resolv.conf 直接Ubuntuの12.04と。 ただし、それらを変更する必要がある場合は、新しいDNSサーバーを追加できます。 /etc/network/interfaces 以下を追加してファイルを作成します:

 dns-nameservers x.x.x.x x.x.x.x

どこで x 使用するDNSサーバーを指定します。

私はあなただった場合、私はアンインストールします network-manager. 私の意見では、それはがらくたの山です。

特に、コンピュータに複数のNicがある場合は、設定を変更することを心配することなく、手動で行う必要があるすべてを実行できます。

nmcliバージョン0.9.10

次のいずれかのコマンドを使用できます:

nmcli -t -f IP4.DNS device show eth0IP4.DNS[1]:192.168.1.1IP4.DNS[2]:8.8.8.8nmcli -t -f IP4.DNS connection show conn-nameIP4.DNS[1]:192.168.1.1IP4.DNS[2]:8.8.8.8

Ubuntu15.10では、DNSを取得できます

nmcli device show <interface name> 

それを行うにはどのように多くの方法がある驚くべき。 Ubuntuサーバー18.04では、次のような追加のものをインストールしたくない場合 nm-tool、その後、 systemd-resolve --status DNS情報のための箱から出して動作します。

DNSサーバーだけでなく、デフォルトゲートウェイ、IPアドレス、ネットワークマスクなども取得することに興味がある場合は、次のようにします。 netplan ip leases eth0 そのすべての情報を読みやすい形式で提供します(あなたが興味を持っていると仮定します eth0 インターフェイス)。

システム上では、 systemd-resolved がインストールされていない :

$ host -v something.unknown | awk -F "[ #]" '/Received /{print$5}' | uniq192.168.1.1

システム上では、 NetworkManager 実行されています :

$ ( nmcli -f IP4.DNS,IP6.DNS dev list || nmcli -f IP4.DNS,IP6.DNS dev show ) 2>/dev/null | awk '/DNS/{print$NF}'192.168.1.1

Ubuntu20.04で

systemd-resolve --status | grep -B 9 -A 6 "Current DNS Server"

DNSを使用する各アダプタで使用されていたDNSについて明確な結果が得られました。

DNSを再構成するには

man systemd-resolved

接続されているDNSサーバーがグローバル設定によって決定されていることを明らかにします。 /etc/systemd/resolved.conf.

Sudoはそのファイルを編集し、コメントを解除して設定します DNS=FallbackDNS= 必要なIpv4DNSサーバーに送信します。例えば, DNS=8.8.8.8FallbackDNS=8.8.4.4 を使用します。 GoogleパブリックDNS.変更を適用するには、マシンを再起動します。

@PLA、これに感謝します ともかく それが私をこの道に導いた。

何を見つけようとしてるの? お使いのシステムで使用されているDNSサーバー? または、DNSルックアップを実行しようとしていますか?

元@LordofTime

私のシステムで使用されている@LordofTime DNSサーバー

あなたは127.0.0.1を使用しています。 DNSサーバーを実行していますか?

参照https://unix.stackexchange.com/q/28941/38647 この質問の非Ubuntuバージョンの場合