Server DNS apa yang saya gunakan?


249

Bagaimana saya bisa mengecek server DNS mana yang saya gunakan (di Linux)? Saya menggunakan manajer jaringan dan koneksi kabel ke LAN universitas saya. (Saya mencoba mencari tahu mengapa domain saya tidak terselesaikan)

Jawaban:


207

Anda harus dapat memperoleh beberapa informasi yang masuk akal di:

$ cat /etc/resolv.conf 

26
Namun, perlu diketahui bahwa (pada Linux modern) konten /etc/nsswitch.confmenentukan layanan nama apa yang digunakan (DNS, LDAP, dll) dan dalam urutan apa. Katakan fgrep hosts: /etc/nsswitch.conf. Jika hanya mereferensikan DNS, /etc/resolv.confadalah tempat yang tepat untuk mencari server nama Anda. Tetapi kemungkinan Anda juga menggunakan mDNS (alias ZeroConf, alias Avahi, alias Bonjour, dll), dll. Dalam hal ini, banyak hal bergantung pada apa yang Anda gunakan.
Alexios

27
File ini biasanya menunjuk pada 127.0.1.1 di Ubuntu - ini adalah server cache DNS lokal, bukan hulu yang sebenarnya.
Barry Kelly

2
@BarryKelly Periksa apa yang digunakan router Anda, lalu
Geremia

2
Dan jika Anda memiliki beberapa server hulu yang dikonfigurasi? Bagaimana cara mengetahui yang mana yang saat ini digunakan?
Sylvain Leroux

4
Lihat jawaban oleh @ G32RW atau @Lonniebiz untuk pendekatan yang lebih kuat dalam berbagai keadaan, misalnya ketika Anda mendapatkan jawaban seperti127.0.0.53
nealmcb

194

Begini cara saya melakukannya:

nmcli dev show | grep DNS

Ini bekerja sebelumnya dengan cara di atas:

nm-tool | grep DNS

14
Yang ini berguna jika Anda menggunakan VPN dan NetworkManager . Anda /etc/resolv.confakan menunjuk ke mesin Anda, dengan dnsmasqmenyelesaikan nama yang dikonfigurasi oleh NetworkManager .
Grzegorz

6
Pada Debian ini membutuhkan network-managerpaket.
TranslucentCloud

2
nm-tool tidak tersedia di linux yang lebih baru. misalnya tidak dalam paket 'network-manager' dari debian 8.
don bright

2
Saya telah memperbarui jawaban untuk mencerminkan apa yang berfungsi untuk saya pada 2016.
Lonniebiz

3
ini adalah jawaban terbaik, resol.conf tidak selalu menunjukkan kebenaran
blade

72

Saya pikir Anda juga dapat meminta DNS dan akan menunjukkan kepada Anda server apa yang mengembalikan hasilnya. Coba ini:

dig yourserver.somedomain.xyz

Dan jawabannya harus memberi tahu Anda server apa yang mengembalikan hasilnya. Output yang Anda minati akan terlihat seperti ini:

;; 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

Anda juga dapat meminta digkueri server DNS tertentu dengan menggunakandig @server_ip


8
Pada Debian ini membutuhkan dnsutilspaket.
Faheem Mitha

6
Jika Anda menggunakan layanan masking / caching DNS yang dijalankan di mesin lokal Anda, itu akan menyembunyikan server DNS yang sebenarnya.
karatedog

4
Ubuntu 18.04 hanya menunjukkan cache dns lokal:SERVER: 127.0.0.53#53(127.0.0.53)
wisbucky

58

Lakukan saja nslookup,. Bagian dari hasilnya termasuk server yang digunakannya.

Dalam contoh di bawah ini, ini menunjukkan bahwa server DNS yang digunakan adalah pada 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
dapatkah Anda memberikan contoh tentang apa yang harus dimasukkan dalam prompt?
chovy

Contoh: $ nslookup www.google.com
Ren

7
Pada Debian ini membutuhkan dnsutilspaket.
Gayan Weerakutti

6
Pada Ubuntu baru-baru ini, ini lagi menunjuk ke server cache lokal 127.0.0.1 seperti yang telah diisyaratkan dalam komentar ini
FriendFX

Di CentOS 7 berhenti dengan kesalahan, tetapi ini adalah vm jadi saya lakukan nslookup google.comdi host Windows dan saya menemukan nameserver. Tambahkan di /etc/resolv.conflike: nameserver xx.xx.xx.xxdan restart layanan network, dan semuanya baik-baik saja. Puji kamu.
WesternGun

55

Pada sistem yang menjalankan penggunaan systemd:

systemd-resolve --status

3
systemd-resol: opsi tidak dikenal '- status'
Acumenus

Sistem @ABB? versi systemd?
G32RW

229-4ubuntu21.2
Acumenus

11
Ini adalah cara standar baru untuk melakukannya di Ubuntu 18,04 Bionic Beaver - biasakanlah, semuanya!
AveryFreeman

5
Ini adalah satu-satunya solusi yang bekerja untuk saya, karena yang lain kembali 127.0.0.53
greuze

13

Dengan network-managerperintah baru nmcli, lakukan ini:

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

Pada versi yang lebih baru dari manajer jaringan (seperti di Ubuntu 16.04), nama bidang sedikit berbeda:

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

Jika Anda tidak tahu nama koneksi, gunakan:

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

Sebagai contoh:

$ 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

Hasil saya: order «con» «show» is not valid.
Sopalajo de Arrierez

Ini berfungsi baik untuk saya dengan manajer jaringan 1.0.4 di Ubuntu 15.10. Mungkin Anda memiliki versi yang lebih lama?
Sameer

Format tabel sangat buruk. Saya berharap mendapatkan kolom seperti format yang mirip dengan Powershell.
CMCDragonkai

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

hanya nmcliitu yang saya butuhkan di ubuntu 19.04
John Mee

9

untuk mendapatkan DNS SERVER pertama (hanya IP):

cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2
  • cat akan menampilkan konfigurasi DNS
  • grep memfilter hanya server nama
  • head hanya akan menyimpan baris / instance pertama
  • cut ambil bagian ip dari baris (kolom kedua dengan '' sebagai pemisah)

Untuk memasukkan DNS IP ke variabel lingkungan, Anda dapat menggunakan sebagai berikut:

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

2
grep -m 1berhenti mencocokkan setelah pertandingan pertama sehingga Anda tidak perlu menggunakanhead
sshow

Untuk meringankan pipa bahkan lebih, menangkap kelompok dengan Perl regexp sangat rapi, dan grep membutuhkan argumen berkas: grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf. Baru saja menulis grup Capture dengan grep perl regular
express

8

Jika Anda menggunakan manajer jaringan, mungkin Anda mendapatkan semua parameter jaringan dari server dhcp di universitas Anda.

Jika Anda tidak ingin menggunakan shell Anda untuk memeriksa pengaturan dns Anda (seperti yang dijelaskan oleh hesse dan Alexios), Anda dapat melihatnya dari panel "Informasi jaringan".

Anda dapat mencapai panel ini dengan menekan tombol kanan mouse pada ikon manajer jaringan dan memilih "Informasi Koneksi" dari menu.


5

Menggunakan 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

Untuk kompatibilitas, systemd-resolveadalah tautan simbolis ke resolvectlbanyak distro seperti untuk 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

berfungsi sempurna di Ubuntu 18.10.
Georgе Stoyanov

3

Perintah

 nmcli dev list iface <interfacename> | grep IP4

Ganti "interfacename" dengan milik Anda.

examlpe

 nmcli dev list iface eth0 | grep IP4

Ini akan mencantumkan semua server DNS (Jika Anda menggunakan lebih dari satu).


nmcli dev list iface [devicename]adalah perintah yang benar
sebix

Saya belum melihat <interface> disembunyikan karena saya menggunakan <>
Maythux

1
Pada debian saya mendapatkan pesan kesalahan --- $ nmcli dev iface eth0 Kesalahan: 'dev' command 'list' tidak valid.
don bright

nmcli adalah perintah khusus RH.
Rui F Ribeiro

Ini jawaban yang benar!
VAdaihiep

3

Saya memiliki Fedora 25 dan juga memiliki respons lambat yang serupa pada baris perintah ke perintah sudo.

nmcli dev show | grep DNS 

menunjukkan bahwa hanya satu dari 3 adaptor saya (dua yang aktif) yang memiliki entri DNS. Dengan menambahkan entri DNS ke satu kartu aktif yang tidak memiliki entri - presto! Semua baik dan waktu respons langsung.


mungkin sebagai alternatif
Amos Folarin


0

Setelah Anda pikir Anda menemukan dns Anda, Anda dapat query langsung dengan penggalian: dig @<dns ip> <host to lookup>. Jika berhasil, Anda harus melihatnya setelah SERVERdengan status NOERROR.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.