使用しているDNSサーバーを確認するにはどうすればよいですか(Linuxの場合)。ネットワークマネージャーと大学のLANへの有線接続を使用しています(ドメインが解決されない理由を調べようとしています)
回答
次の場所で妥当な情報を取得できるはずです:
$ cat /etc/resolv.conf
コメント
回答
のような回答が得られたら「私がそれを行う方法:
( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS
nm-tool | grep DNS
Debianでは、ネットワークマネージャーパッケージがインストールされています。
コメント
- これは、 VPN とを使用している場合に便利です。 NetworkManager 。
/etc/resolv.conf
はマシンを指し、dnsmasq
は NetworkManager bによって設定された名前を解決します>。 - Debianでは、これには
network-manager
パッケージが必要です。 - nm-toolは新しいLinuxでは使用できません。たとえば、使用できません。 debian8の’ network-manager ‘パッケージ内。
- I ‘回答を更新しては2016年に私のために働いています。
- これが最良の答えです、resolve.confは常に真実を示すとは限りません
回答
systemdを実行しているシステムの場合:
systemd-resolve --status
コメント
- systemd-resolve:認識されないオプション’ -status ‘
- 言います
Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.
- これは、Ubuntu 18.04 Bionic Beaverでこれを行うための新しいデフォルトの方法です-皆さん、慣れてください!
- これが唯一の方法です他の人が127.0.0.53を返したので、私のために働いた解決策
- 私は何を読んでいますか? DNSSECレコードしか表示されません。
回答
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
にクエリを実行するように指示することもできます。 dig @server_ip
コメント
- Debianでは、
dnsutils
パッケージ。 - ローカルマシンで実行されているDNSマスキング/キャッシングサービスを使用すると、実際のDNSサーバーが非表示になります。
- Ubuntu 18.04は、ローカルDNSキャッシュを表示するだけです:
SERVER: 127.0.0.53#53(127.0.0.53)
回答
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
コメント
- プロンプトに入力する内容の例を教えてください。
- 例:
$ nslookup www.google.com
- Debianでは、これには
dnsutils
パッケージが必要です。 - 最近のUbuntuでは、このコメント
- CentOSですでに示唆されているように、これもローカルキャッシュサーバー127.0.0.1を指しています。 7エラーで終了しますが、仮想マシンであるため、Windowsホストで
nslookup google.com
を実行し、ネームサーバーを見つけました。/etc/resolv.conf
のようにnameserver xx.xx.xx.xx
に追加し、サービスnetwork
を再起動すれば問題ありません。あなたを称賛。
回答
新しいnetwork-manager
コマンドnmcli
、これを行います:
nmcli --fields ipv4.dns,ipv6.dns con show [connection_name]
新しいバージョンのnetwork-manager(Ubuntu 16.04など)では、フィールド名わずかに異なります:
nmcli --fields ip4.dns,ip6.dns con show [connection_name]
接続名がわからない場合は、次を使用してください:
nmcli -t --fields NAME con show --active
たとえば、古いバージョンのnmcliの場合:
$ 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
。 - Ubuntu15.10のnetwork-manager1.0.4で問題なく動作します。古いバージョンを使用している可能性がありますか?
- 表形式はかなり悪いです。Powershellに似た形式のような列を取得したいと思っています。
- 戻り値
Error: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
- 単に
nmcli
はubuntu19.04で必要なすべてでした
回答
最初のDNSサーバー(IPのみ):
-
cat
はDNS構成を出力します -
grep
フィルターのみネームサーバー -
head
は最初の行/インスタンスのみを保持します -
cut
ipを取得します行の一部(区切り文字として「」が付いた2番目の列)
DNS ipを環境変数に入れるには、次のように使用できます。
export THEDNSSERVER=$(cat /etc/resolv.conf |grep -i "^nameserver"|head -n1|cut -d " " -f2)
コメント
-
grep -m 1
は最初の一致後に一致を停止するため、’head
- パイプラインをさらに軽量化するには、Perl regexpを使用したキャプチャグループが非常に優れており、grepはファイルを取得します引数:
grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf
。 グループをgrepperl正規表現でキャプチャ - ‘のIPv4とIPv6DNSサーバー。また、セカンダリサーバーが存在するのには理由があります。このコマンドが返すのはどれですか?最初のものを取り、他のものは無視することをお勧めしますか?
を使用する必要はありません
回答
使用している場合ネットワークマネージャーは、おそらく大学のdhcpサーバーからすべてのネットワークパラメーターを取得します。
シェルを使用してDNS設定を確認したくない場合は(hesseとAlexiosで説明されています)、それらを確認できます。パネル「ネットワーク情報」から。
ネットワークマネージャアイコン上でマウスの右ボタンを押し、メニューから「接続情報」を選択すると、このパネルにアクセスできます。
回答
互換性のために、systemd-resolve
は、多くのディストリビューションのresolvectl
へのシンボリックリンクです。 Ubuntu 18.10の場合:
$ 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
コメント
- Ubuntu18.10で完全に機能します。
回答
フィードしましたora 25であり、コマンドラインでsudoコマンドと同様の応答が遅い。
nmcli dev show | grep DNS
は、3つのアダプターのうち1つ(アクティブな2つ)だけがDNSエントリを持っていることを示しました。エントリがなかった1つのアクティブなカードにDNSエントリを追加することにより、「presto!すべてが良好で、応答時間は即時になります。
コメント
- おそらく代わりに
回答
Ubuntuの場合> = 15
nmcli device show <interfacename> | grep IP4.DNS
<interfacename>
を自分のものに置き換えます。
Ubuntuの場合< = 14
コマンド
nmcli dev list iface <interfacename> | grep IP4
<interfacename>
を自分のものに置き換えます。
例
nmcli device show eth0 | grep IP4.DNS
または
nmcli dev list iface eth0 | grep IP4
これにより、すべてのDNSサーバーが一覧表示されます( 1)。
コメント
-
nmcli dev list iface [devicename]
が正しいコマンドです - I ‘ <インターフェース>は、 >
- Debianでエラーが発生します— $ nmcli dev li st iface eth0エラー:’ dev ‘コマンド’ list ‘は無効です。
- nmcliはRH固有のコマンドです。
- これは正解です!
回答
最近のFedora33では、
# resolvectl dns Global: Link 2 (enp0s31f6): Link 3 (wlp4s0): 1.1.1.1 8.8.8.8 Link 4 (virbr0): Link 5 (virbr0-nic):
を使用してsystemd-resolved
がアクティブな場合は、cat /etc/resolv.conf
を実行します。ファイルを制御しているユーザーが表示されます。
詳細が必要な場合は、 resolvectl status
resolvectl statistics
を使用でき、キャッシュをフラッシュすることもできます…
トラブルシューティングを行うには、レベルをDEBUGに設定した後にjournalctl -u systemd-resolved -f -o cat | grep Looking
を使用できます:sudo resolvectl log-level debug
回答
CentOSでは、次を使用できます:
/usr/sbin/named -v
回答
systemd-resolved
がインストールされていないシステムの場合:
$ host -v something.unknown | awk -F "[ #]" "/Received /{print$5}" | uniq 192.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
/etc/nsswitch.conf
の内容によって、使用されるネームサービス(DNS、LDAPなど)とその順序が決まることに注意してください。fgrep hosts: /etc/nsswitch.conf
と言います。 DNSのみを参照している場合は、/etc/resolv.conf
がネームサーバーを探すのに適した場所です。ただし、’ mDNS(別名ZeroConf、別名Avahi、別名Bonjourなど)なども使用している可能性があります。その場合、状況はユーザーによって異なります’再利用しています。127.0.0.53