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


254

システムで使用されている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を使用しています


何を探していますか?DNSサーバーはシステムで使用されていますか?または、DNSルックアップを実行しようとしていますか?
トーマス・ウォード

前の@LordofTime
ish

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

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

参照してくださいunix.stackexchange.com/q/28941/38647この質問の非Ubuntuのバージョンのために
mwfearnley

回答:


250

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

Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu <= 14

nmcli dev list iface <interfacename> | grep IP4

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

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

編集:

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


2
ありがとう、はい、動作しているようです、ubuntuネットワーキングは混乱しているようですので、resolve.conf / baseまたは/ etc / network / interfacesまたはnetwork managerにdnsサーバーを設定できます。ubuntuネットワーキングの決定的なガイドはありますか?
アヌラグユニアル

GUIを使用する場合、設定する最適な場所は、ネットワーク接続ダイアログでプロファイルを作成することです。デフォルトを複製し、複製を編集して必要な変更を加え、デフォルトのままにして、常に作業プロファイルがあることを確認しました。その後、プロファイルを簡単に切り替えることができます。GUIなしでこれを行う方法はわかりませんが、Ubuntuのネットワークに精通しているユーザー「James Henstridge」がいます。askubuntuで彼の情報を検索してみてください。彼は私がこの投稿であなたに与えたコマンドについて話しました。
マーティフライド


6
15.04を使用していますが、代わりに「nmcli dev show | grep DNS」が機能します。
フリッカーフライ

1
@vcardillo:元の質問は「Ubuntu 12.04 LTSを使用しています」と述べていました。回答を投稿してから5年が経ちました。永遠に続くものはありません。
マーティフライド

85

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


つかいます

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

1
ただ追加したかった、nm-appletの接続情報メニューに移動しても動作します:)
Samik

1
1 NM-CLI @Marty揚げで答えないと、これはまた、作品
アヌラーグUniyal

2
lubuntu 14.04でもうまく機能します。おかげで
ジェームズキャンベル

2
nm-toolは、15.10
ラビリンス

1
ええ、これはもう機能しません... nm-tool16.xでも同じです。nmcli(マーティフリードの答え)は行く方法です
ランバート

46

2つの最高得点の回答、nmcli dev list iface <interfacename> | grep IP4およびnm-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)

これで、localhostを使用していることわかりました。人気のある回答のいずれかをお試しください。好き:

> nm-tool | grep DNS:
    DNS:             8.8.8.8

しかし、127.0.0.1 / localhostが使用されていない場合、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.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 OVERWRITTEN
nameserver 1.2.3.4
nameserver 127.0.0.1
search MyDomain

3
これが最も完全な答えです
マリノス

ありがとうございました。ここにいる私たちの何人かはNMを使用していません。それはコミュニティにとって良いことです。
スティーブンボストン

完了するだけで、digユーティリティはで簡単にインストールできますapt install dnsutils
ダニエル・ブルグナーラ

32

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

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

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

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

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

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


2
DNSの変更後、nmを再起動する必要がありますか?
Bhargav Nanekalva

1
-ありがとう。これは素晴らしい。そのネットワークマネージャービジネスがなくても動作します。
アダム

「cat /etc/resolv.confはDNSサーバーを表示する必要があります」。そうではありません。
マリノス

25

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


NBおそれもこれを言う/etc/resolv.confの猫の場合
Rqomey

11

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


0

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

大きな説明のため。

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

 /etc/NetworkManager/NetworkManager.conf

または

 <SYSCONFDIR>/NetworkManager/NetworkManager.conf

4
しかし/etc/NetworkManager/NetworkManager.conf、それに記載されているすべてのDNSサーバーを持っていません
アヌラーグUniyal
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.