どのDNSサーバーを使用していますか?


249

使用しているDNSサーバーを確認するにはどうすればよいですか(Linuxの場合)?ネットワークマネージャーと大学のLANへの有線接続を使用しています。(ドメインが解決されない理由を見つけようとしています)

回答:


207

以下の合理的な情報を取得できるはずです。

$ cat /etc/resolv.conf 

26
ただし、(現代のLinuxenでは)の内容によって/etc/nsswitch.conf、使用されるネームサービス(DNS、LDAPなど)とその順序が決まることに注意してください。と言うfgrep hosts: /etc/nsswitch.conf。DNSのみを参照する場合/etc/resolv.confは、ネームサーバーを探すのに適した場所です。しかし、mDNS(別名ZeroConf、別名Avahi、別名Bonjourなど)なども使用している可能性があります。その場合、使用している内容によって異なります。
アレクシオス

27
このファイルは通常、Ubuntuで127.0.1.1を指します-実際のアップストリームではなく、ローカルDNSキャッシュサーバーです。
バリーケリー

2
@BarryKellyお使いのルーターが使用しているものを確認してから
Geremia

2
また、複数のアップストリームサーバーが構成されている場合は?現在使用されているものを知る方法は?
シルヴァンルルー

4
あなたのような答えを得るときなど、様々な状況下で、より堅牢なアプローチのための@ G32RWまたは@Lonniebizによって答えを参照してください127.0.0.53
nealmcb

194

以下にその方法を示します。

nmcli dev show | grep DNS

これ上記の方法の機能しました:

nm-tool | grep DNS

14
これは、VPNNetworkManagerを使用している場合に便利です。あなた/etc/resolv.confと、あなたのマシンを指すようになりますdnsmasqによって構成されて名前解決のNetworkManager
グルジェゴルツŻur13年

6
Debianでは、これにはnetwork-managerパッケージが必要です。
TranslucentCloud

2
nm-toolは、新しいLinuxでは使用できません。たとえば、debian 8の「network-manager」パッケージには含まれていません。
明るい

2
私は2016年に私のために働いているものを反映するように答えを更新しました
。– Lonniebiz

3
これが最良の答えです。resolve.confは必ずしも真実を示すとは限りません
ブレード

72

DNSを照会することもでき、どのサーバーが結果を返したかを示します。これを試して:

dig yourserver.somedomain.xyz

応答には、どのサーバーが結果を返したかが示されているはずです。興味のある出力は次のようになります。

;; Query time: 91 msec
;; SERVER: 172.xxx.xxx.xxx#53(172.xxx.xxx.xxx)
;; WHEN: Tue Apr 02 09:03:41 EDT 2019
;; MSG SIZE  rcvd: 207

またdig、特定のDNSサーバーを照会するように指示することもできます。dig @server_ip


8
Debianでは、これにはdnsutilsパッケージが必要です。
ファヒムミタ

6
ローカルマシンで実行されているDNSマスキング/キャッシュサービスを使用すると、実際のDNSサーバーが非表示になります。
空手犬

4
Ubuntu 18.04はローカルDNSキャッシュを表示するだけです:SERVER: 127.0.0.53#53(127.0.0.53)
wisbucky

58

ただ、やりますnslookup。結果には、使用しているサーバーが含まれます。

次の例では、使用されているDNSサーバーが8.8.8.8であることを示しています。

$ nslookup google.com
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.22.174

1
プロンプトに入力する内容の例を教えてください。
チョビー

例: $ nslookup www.google.com
レン、

7
Debianでは、これにはdnsutilsパッケージが必要です。
ガヤンウィエラクッティ

6
最近のUbuntuでは、これは再び、すでに中で示唆したローカルキャッシュサーバ127.0.0.1を指すこのコメント
FriendFX

CentOS 7ではエラーで終了しますが、vmであるためnslookup google.com、Windowsホストで実行し、ネームサーバーを見つけました。/etc/resolv.conflike:に追加し、nameserver xx.xx.xx.xxserviceを再起動しますnetwork。すべて問題ありません。あなたを称賛。
WesternGun

55

systemdを使用しているシステムでは次を使用します。

systemd-resolve --status

3
systemd-resolve:認識されないオプション '--status'
Acumenus

@ABBシステム?systemdバージョン?
G32RW

229-4ubuntu21.2
Acumenus

11
これは、Ubuntu 18.04 Bionic Beaverでこれを行うための新しいデフォルトの方法です-皆さん、慣れてください!
AveryFreeman

5
これは私のために働いた唯一の解決策であり、他の人は127.0.0.53を返しました
18年

13

新しいnetwork-managerコマンドでnmcli、これを行います:

nmcli --fields ipv4.dns,ipv6.dns con show <connection_name>

ネットワークマネージャーの新しいバージョン(Ubuntu 16.04など)では、フィールド名が少し異なります。

nmcli --fields ip4.dns,ip6.dns con show <connection_name>

接続名がわからない場合は、次を使用します。

nmcli -t --fields NAME con show --active

例えば:

$ nmcli --fields ip4.dns,ip6.dns con show 'Wired connection 1'
IP4.DNS[1]:                             172.21.0.13
IP4.DNS[2]:                             172.21.0.4

私の結果:order «con» «show» is not valid
ソパラホデアリエレス

Ubuntu 15.10のnetwork-manager 1.0.4でうまく動作します。古いバージョンをお持ちですか?
サミール

表形式はかなり悪いです。Powershellに似た形式のような列を取得したいと考えています。
CMCDragonkai

1
戻り値Error: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
FriendFX

単にnmcli私はUbuntuの19.04に必要なすべてのだった
ジョン・ミー

9

最初のDNSサーバーを取得するには(IPのみ):

cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2
  • cat DNS構成を出力します
  • grep ネームサーバーのみをフィルタリング
  • head 最初の行/インスタンスのみを保持します
  • cut 行のip部分を使用します(区切り文字として「」を含む2番目の列)

環境変数にDNS IPを配置するには、次のように使用できます。

export THEDNSSERVER=$(cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2)

2
grep -m 1最初の一致後に一致を停止するため、使用する必要はありませんhead
-sshow

パイプラインをさらに軽量化するために、Perl正規表現を使用したキャプチャグループは非常に適切であり、grepはファイル引数を取りますgrep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf。ただ、書いたのgrep Perlの正規表現でキャプチャグループを
sshow

8

ネットワークマネージャーを使用している場合、おそらく大学のdhcpサーバーからすべてのネットワークパラメーターを取得します。

シェルを使用してDNS設定を確認したくない場合(hesseとAlexiosの説明どおり)、「ネットワーク情報」パネルから確認できます。

このパネルにアクセスするには、ネットワークマネージャーアイコンでマウスの右ボタンを押し、メニューから[接続情報]を選択します。


5

を使用して resolvectl

$ resolvectl status | grep -1 'DNS Server'
    DNSSEC supported: no
  Current DNS Server: 1.1.1.1
         DNS Servers: 1.1.1.1
                      1.0.0.1

互換性のために、Ubuntu 18.10のような多くのディストリビューションsystemd-resolveへのシンボリックリンクresolvectlです:

$ type -a systemd-resolve
systemd-resolve is /usr/bin/systemd-resolve

$ ll /usr/bin/systemd-resolve
lrwxrwxrwx 1 root root 10 nov.  15 21:42 /usr/bin/systemd-resolve -> resolvectl

$ type -a resolvectl
resolvectl is /usr/bin/resolvectl

$ file /usr/bin/resolvectl
/usr/bin/resolvectl: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=09e488e849e3b988dd2ac93b024bbba18bb71814, stripped

Ubuntu 18.10で完璧に動作します。
ジョージストヤノフ

3

コマンド

 nmcli dev list iface <interfacename> | grep IP4

「interfacename」を自分のものに置き換えます。

一例

 nmcli dev list iface eth0 | grep IP4

これにより、すべてのDNSサーバーが一覧表示されます(複数使用している場合)。


nmcli dev list iface [devicename]は正しいコマンドです
-sebix

私は私が使用しているため、<インターフェース>隠されている気づいていない<>
Maythux

1
Debianではエラーが発生します--- $ nmcli dev list iface eth0 Error: 'dev' command 'list' is not valid。
明るくしない

nmcliはRH固有のコマンドです。
ルイFリベイロ

これは正解です!
VAdaihiep

3

私はFedora 25を持っていますが、コマンドラインでsudoコマンドと同様の遅い応答がありました。

nmcli dev show | grep DNS 

私の3つのアダプターのうち1つ(アクティブな2つ)にのみDNSエントリーがあることが示されました。DNSエントリをエントリのない1つのアクティブなカードに追加することにより-presto!すべてが良好であり、応答時間はすぐです。


おそらく代わり
アモスFolarin


0

DNSを見つけたと思うと、dig:で直接クエリできます dig @<dns ip> <host to lookup>。動作する場合SERVERは、ステータスがになった後に表示されるはずですNOERROR

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.