ฉันจะตรวจสอบว่าฉันใช้เซิร์ฟเวอร์ DNS ใด (ใน Linux) ฉันใช้ตัวจัดการเครือข่ายและการเชื่อมต่อแบบใช้สายกับ LAN ในมหาวิทยาลัยของฉัน (ฉันกำลังพยายามหาสาเหตุที่โดเมนของฉันไม่ได้รับการแก้ไข)
ฉันจะตรวจสอบว่าฉันใช้เซิร์ฟเวอร์ DNS ใด (ใน Linux) ฉันใช้ตัวจัดการเครือข่ายและการเชื่อมต่อแบบใช้สายกับ LAN ในมหาวิทยาลัยของฉัน (ฉันกำลังพยายามหาสาเหตุที่โดเมนของฉันไม่ได้รับการแก้ไข)
คำตอบ:
คุณควรได้รับข้อมูลที่สมเหตุสมผลใน:
$ cat /etc/resolv.conf
127.0.0.53
นี่คือวิธีที่ฉันทำ:
nmcli dev show | grep DNS
สิ่งนี้ทำงานก่อนหน้านี้ตามวิธีข้างต้น:
nm-tool | grep DNS
/etc/resolv.conf
จะชี้ไปที่เครื่องของคุณมีdnsmasq
การแก้ไขชื่อตามที่กำหนดค่าโดยNetworkManager
network-manager
แพ็คเกจนี้
ฉันคิดว่าคุณสามารถสืบค้น 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
dnsutils
แพ็คเกจนี้
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
dnsutils
แพ็คเกจนี้
nslookup google.com
ในโฮสต์ Windows และพบเซิร์ฟเวอร์ชื่อ เพิ่มใน/etc/resolv.conf
like: nameserver xx.xx.xx.xx
และเริ่มบริการnetwork
และทั้งหมดเป็นเรื่องปกติ สรรเสริญคุณ
บนระบบที่ใช้ systemd ให้ใช้:
systemd-resolve --status
ด้วย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
.
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
ทุกอย่างที่ฉันต้องการใน Ubuntu 19.04
วิธีรับ DNS SERVER แรก (IP เท่านั้น):
cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2
cat
จะออกการกำหนดค่า DNSgrep
กรองเนมเซิร์ฟเวอร์เท่านั้นhead
จะเก็บเฉพาะแถว / อินสแตนซ์แรกเท่านั้นcut
ใช้ส่วนของแถว (คอลัมน์ที่สองที่มี '' เป็นตัวคั่น)หากต้องการวาง DNS ip ในตัวแปรสภาพแวดล้อมคุณสามารถใช้ดังต่อไปนี้:
export THEDNSSERVER=$(cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2)
grep -m 1
หยุดการจับคู่หลังจากที่นัดแรกเพื่อให้คุณไม่ต้องใช้head
grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf
อาร์กิวเมนต์ไฟล์: เพิ่งเขียนขึ้นกลุ่มจับกับ grep Perl แสดงออกปกติ
หากคุณกำลังใช้ตัวจัดการเครือข่ายคุณอาจได้รับพารามิเตอร์เครือข่ายทั้งหมดจากเซิร์ฟเวอร์ dhcp ที่มหาวิทยาลัยของคุณ
หากคุณไม่ต้องการใช้เชลล์เพื่อตรวจสอบการตั้งค่า dns ของคุณ (ตามที่อธิบายโดย hesse และ Alexios) คุณสามารถดูได้จากแผง "ข้อมูลเครือข่าย"
คุณสามารถเข้าถึงแผงนี้โดยการกดปุ่มเมาส์ขวาบนไอคอน Network manager แล้วเลือก "Connection Information" จากเมนู
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
เพื่อความเข้ากันได้systemd-resolve
เป็นลิงก์สัญลักษณ์ไปยังresolvectl
หลาย distros สำหรับ 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
คำสั่ง
nmcli dev list iface <interfacename> | grep IP4
แทนที่ "interfacename" ด้วยของคุณ
examlpe
nmcli dev list iface eth0 | grep IP4
นี่จะแสดงรายการเซิร์ฟเวอร์ DNS ทั้งหมด (หากคุณใช้มากกว่าหนึ่ง)
nmcli dev list iface [devicename]
เป็นคำสั่งที่ถูกต้อง
ฉันมี Fedora 25 และมีการตอบสนองช้าคล้ายกับบรรทัดคำสั่งกับคำสั่ง sudo
nmcli dev show | grep DNS
แสดงให้เห็นว่ามีเพียงหนึ่งใน 3 อะแดปเตอร์ของฉัน (สองที่ใช้งานอยู่) มีรายการ DNS โดยการเพิ่มรายการ DNS ไปยังการ์ดที่ใช้งานอยู่หนึ่งใบที่ไม่มีรายการ - presto! ทั้งหมดเป็นสิ่งที่ดีและเวลาตอบสนองทันที
ใน CentOS คุณสามารถใช้:
/usr/sbin/named -v
เมื่อคุณคิดว่าคุณพบ DNS dig @<dns ip> <host to lookup>
ของคุณคุณสามารถสอบถามได้โดยตรงกับการขุด: หากการทำงานคุณจะเห็นได้หลังจากที่มีสถานะเป็นSERVER
NOERROR
/etc/nsswitch.conf
กำหนดบริการชื่อใดที่ใช้ (DNS, LDAP, ฯลฯ ) และในลำดับใดfgrep hosts: /etc/nsswitch.conf
พูด หากอ้างอิง DNS เท่านั้น/etc/resolv.conf
เป็นสถานที่ที่เหมาะสมในการค้นหาเนมเซิร์ฟเวอร์ของคุณ แต่โอกาสที่คุณจะใช้ mDNS (เช่น ZeroConf, aka Avahi, aka Bonjour ฯลฯ ) ฯลฯ ในกรณีนี้สิ่งต่างๆขึ้นอยู่กับสิ่งที่คุณใช้