web-dev-qa-db-ja.com

システムで使用されている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 OVERWRITTEN
nameserver 127.0.0.1
$ cat /etc/network/interfaces 
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

ただし、サーバーは表示されません。「ネットワークマネージャーGUIツール」に移動すると、ワイヤレスセクションに「DNS 192.168.1.1 8.8.8.8 8.8.4.4」が表示されます。

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

Ubuntu 12.04 LTSを使用しています

247
Anurag Uniyal

resolv.confは、自分で実装しない限り、もう実際には使用されません。ネットワーク管理者がこれを実行します。 OpenDNSからGoogleのオープンDNSに切り替えることがあるため、システム上のDNSサーバーをリストするエイリアスを作成しました。

buntu> = 15

nmcli device show <interfacename> | grep IP4.DNS

buntu <= 14

nmcli dev list iface <interfacename> | grep IP4

私の場合、<interfacename>eth0です。これは一般的ですが、常にそうとは限りません。

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

編集:

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

244
Marty Fried

これはUbuntu 13.10以前で有効です。 Ubuntu 14.04以降については、 Koala Yeungの回答:14.04以降のUbuntuで使用しているDNSを知る方法


つかいます

nm-tool

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

NetworkManager Tool

State: 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
85
tgm4883

トップスコアの2つの答えnmcli dev list iface <interfacename> | grep IP4nm-toolは、どちらも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)

これでare localhostを使用していることがわかりました。人気のある回答の1つに進みます。好き:

> nm-tool | grep DNS:
    DNS:             8.8.8.8

しかし、127.0.0.1/localhostがnotである場合、nm-toolnmcliの出力は誤解を招く可能性があります。

> 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で接続した環境のローカルアドレスは正しく解決されます。 GoogleのDNS 8.8.8.8does n'tについて知っているすべて。

これは、vpncを使用してVPNに接続した後、/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 1.2.3.4
nameserver 127.0.0.1
search MyDomain
46
Peter V. Mørch

cat /etc/resolv.confにはDNSサーバーが表示されます。

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

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

ここで、xは、使用するDNSサーバーです。

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

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

32
ssc

Ubuntu 18.04では、systemd-resolve --statusを使用できます

23
PLA

nmcliバージョン0.9.10

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

nmcli -t -f IP4.DNS device show eth0
IP4.DNS[1]:192.168.1.1
IP4.DNS[2]:8.8.8.8

nmcli -t -f IP4.DNS connection show conn-name
IP4.DNS[1]:192.168.1.1
IP4.DNS[2]:8.8.8.8
11
iman

Ubuntu 15.10では、DNSを取得できます

nmcli device show <interface name> 
2
Suleman Hasib

ネットワーク管理者によって管理されているようです。こちらをご覧ください http://manpages.ubuntu.com/manpages/precise/man5/NetworkManager.conf.5.html

大きな説明のため。

または、それを見る短いバージョン

 /etc/NetworkManager/NetworkManager.conf

または

 <SYSCONFDIR>/NetworkManager/NetworkManager.conf
0
mbs