บรรทัดคำสั่งเพื่อแสดงรายการเซิร์ฟเวอร์ 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
Thomas Ward

อดีต @LordofTime
ish

@LordofTime เซิร์ฟเวอร์ DNS ของฉันใช้อยู่
Anurag Uniyal

คุณใช้ 127.0.0.1 คุณใช้เซิร์ฟเวอร์ DNS หรือไม่
Skaperen

ดูunix.stackexchange.com/q/28941/38647สำหรับคำถามนี้ที่ไม่ใช่รุ่น Ubuntu
mwfearnley

คำตอบ:


250

resolv.conf ไม่ได้ใช้จริง ๆ อีกต่อไปเว้นแต่ว่าคุณจะใช้มัน ผู้จัดการเครือข่ายทำตอนนี้ ฉันสร้างนามแฝงเพื่อแสดงรายการเซิร์ฟเวอร์ DNS ในระบบของฉันเนื่องจากบางครั้งฉันเปลี่ยนจาก OpenDNS เป็น DNS เปิดของ Google

Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu <= 14

nmcli dev list iface <interfacename> | grep IP4

ในกรณีของฉัน<interfacename>คือeth0ซึ่งเป็นเรื่องปกติ แต่ไม่เสมอกรณี

ดูว่านี่คือสิ่งที่คุณต้องการ

แก้ไข:

ฉันคิดว่า resolv.conf ใช้งานจริงโดยอ้อมเพราะตัวจัดการเครือข่ายสร้างเซิร์ฟเวอร์ที่ฟังบน 127.0.0.1 แต่ฉันได้รับแจ้งว่านี่เป็นรายละเอียดการใช้งานที่ไม่ควรนับ ฉันคิดว่าถ้าคุณป้อนที่อยู่ DNS ก่อนรายการนี้พวกเขาอาจถูกนำมาใช้ แต่ฉันไม่แน่ใจว่าวิธีการนี้ทำงานอย่างไร ฉันคิดว่าเป็นการดีที่สุดที่จะใช้ตัวจัดการเครือข่ายในกรณีส่วนใหญ่หากเป็นไปได้


2
ขอบคุณใช่ที่ดูเหมือนว่าจะทำงานได้เครือข่าย Ubuntu ดูเหมือนจะสับสนดังนั้นฉันสามารถตั้งค่าเซิร์ฟเวอร์ DNS ใน resol.conf / base หรือใน / etc / network / interfaces หรือในตัวจัดการเครือข่ายมีคู่มือที่ชัดเจนสำหรับเครือข่าย Ubuntu หรือไม่
Anurag Uniyal

หากคุณใช้ GUI สิ่งที่ดีที่สุดในการตั้งค่าคือการสร้างส่วนกำหนดค่าในกล่องโต้ตอบการเชื่อมต่อเครือข่าย ฉันทำซ้ำค่าเริ่มต้นจากนั้นแก้ไขข้อมูลซ้ำเพื่อทำการเปลี่ยนแปลงที่ฉันต้องการรักษาค่าเริ่มต้นเพื่อให้แน่ใจว่าฉันมีโปรไฟล์ที่ทำงานอยู่เสมอ จากนั้นจึงสลับโปรไฟล์ได้ง่าย ฉันไม่ทราบวิธีการทำเช่นนี้หากไม่มี GUI แต่มีผู้ใช้ "James Henstridge" ที่มีความรู้ในระบบเครือข่ายของ Ubuntu มาก คุณอาจลองค้นหา Askubuntu เพื่อดูข้อมูลของเขา เขาบอกฉันเกี่ยวกับคำสั่งที่ฉันให้คุณในโพสต์นี้
Marty ผัด

1
stgraber.org/2012/02/24/dns-in-ubuntu-12-04เป็นบทความที่ดีเกี่ยวกับการแก้ไข DNS ใน Ubuntu 12.04
Anurag Uniyal

6
ฉันใช้ 15.04 และ 'nmcli dev show | grep DNS' ใช้แทนฉันได้
flickerfly

1
@vcardillo: คำถามเดิมที่ระบุไว้: "ฉันใช้ Ubuntu 12.04 LTS" 5 ปีแล้วที่ฉันโพสต์คำตอบ ไม่มีอะไรที่เป็นอมตะ.
Marty Fried

85

ใช้ได้กับ Ubuntu 13.10 และรุ่นก่อนหน้าเท่านั้น สำหรับ Ubuntu 14.04 และสูงกว่าโปรดดูคำตอบของ Koala Yeung ไปที่: วิธีการทราบ DNS ที่ฉันใช้ใน Ubuntu ตั้งแต่ 14.04 เป็นต้นไป


ใช้

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 Fried
Anurag Uniyal

2
ใช้งานได้ดีบน lubuntu 14.04 เช่นกัน ขอบคุณ
jamescampbell

2
ไม่พบเครื่องมือ nm ในวันที่ 15.10
เขาวงกต

1
ใช่สิ่งนี้ไม่ทำงานอีกต่อไป ... ไม่ได้nm-toolใน 16.x เช่นกัน nmcli(ในคำตอบของ Marty Fried) เป็นหนทางไป
Lambart

46

คำตอบที่ให้คะแนนสูงสุดสองข้อnmcli dev list iface <interfacename> | grep IP4และnm-toolทั้งคู่คิดว่าผู้จัดการเครือข่ายอยู่ในการควบคุม ซึ่งมันคือ - บนเครื่องเดสก์ท็อปส่วนใหญ่อย่างน้อยที่สุด แต่คำตอบที่ครบถ้วนกว่าคือบางครั้งผู้จัดการเครือข่ายไม่สามารถควบคุมได้ เช่น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-toolของ 's และnmcli' s จะทำให้เข้าใจผิด:

> 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 ได้รับการแก้ไขอย่างถูกต้อง DNS ทั้งหมดของ Google 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
นี่เป็นคำตอบที่สมบูรณ์ที่สุด
Marinos An

ขอขอบคุณ. พวกเราบางคนที่นี่ไม่ใช้ NM และเป็นสิ่งที่ดีสำหรับชุมชน
สตีเฟ่นบอสตัน

เพียงแค่ให้เสร็จสิ้นที่ยูทิลิตี้ที่สามารถติดตั้งได้อย่างง่ายดายด้วยdig apt install dnsutils
Daniele Brugnara

32

cat /etc/resolv.conf ควรแสดงเซิร์ฟเวอร์ DNS ของคุณ

คุณไม่สามารถแก้ไขresolv.confได้โดยตรงกับ Ubuntu 12.04 หากคุณต้องการเปลี่ยนพวกเขาคุณสามารถเพิ่มเซิร์ฟเวอร์ DNS ใหม่ใน/etc/network/interfacesไฟล์ของคุณ โดยเพิ่มสิ่งต่อไปนี้:

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

ที่xเป็นเซิร์ฟเวอร์ DNS ที่คุณต้องการใช้

network-managerถ้าฉันเป็นคุณผมจะถอนการติดตั้ง ในความคิดของฉันมันเป็นกองอึ

คุณสามารถทำทุกสิ่งที่คุณต้องทำด้วยตนเองโดยไม่ต้องกังวลเกี่ยวกับการเปลี่ยนการตั้งค่าโดยเฉพาะถ้าคุณมี NIC หลายตัวในคอมพิวเตอร์


2
ฉันต้องรีสตาร์ทนาโนเมตรหลังจากทำการเปลี่ยน DNS หรือไม่
Bhargav Nanekalva

1
--Thanks มันเยี่ยมมาก มันทำงานได้แม้ไม่มีธุรกิจผู้จัดการเครือข่าย
อดัม

"cat /etc/resolv.conf ควรแสดงเซิร์ฟเวอร์ DNS ของคุณ" มันไม่ได้
Marinos An

25

ใน Ubuntu 18.04 คุณสามารถใช้ได้ systemd-resolve --status


NB ถ้าคุณ cat /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 ใด ๆ ที่อยู่ในรายการ
Anurag Uniyal
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.