Dòng lệnh liệt kê các máy chủ DNS được sử dụng bởi hệ thống của tôi


254

Có một lệnh để liệt kê các máy chủ dns được sử dụng bởi hệ thống của tôi?

Tôi đã thử

$ 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

Nhưng nó không liệt kê bất kỳ máy chủ nào, nếu tôi đi đến "Công cụ GUI của Trình quản lý mạng", trong phần Không dây, nó liệt kê "DNS 192.168.1.1 8.8.8.8 8.8.4.4"

Tôi có thể lấy thông tin tương tự từ dòng lệnh không?

Tôi đang sử dụng Ubuntu 12.04 LTS


Bạn đang cố gắng tìm gì? Các máy chủ DNS đang được sử dụng bởi hệ thống của bạn? hoặc bạn đang cố gắng thực hiện tra cứu DNS?
Thomas Ward

Các cựu @LordofTime
ish

@LordofTime Máy chủ DNS đang được sử dụng bởi hệ thống của tôi
Anurag Uniyal

bạn đang sử dụng 127.0.0.1. bạn đang chạy một máy chủ DNS?
Skaperen

Xem unix.stackexchange.com/q/28941/38647 để biết phiên bản không phải Ubuntu của câu hỏi này
mwfearnley

Câu trả lời:


250

decv.conf không thực sự được sử dụng nữa, trừ khi bạn tự thực hiện nó. Người quản lý mạng làm điều đó ngay bây giờ. Tôi đã tạo một bí danh để liệt kê các máy chủ DNS trên hệ thống của mình, vì đôi khi tôi chuyển từ OpenDNS sang DNS mở của Google.

Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu <= 14

nmcli dev list iface <interfacename> | grep IP4

Trong trường hợp của tôi, <interfacename>eth0, đó là phổ biến, nhưng không phải luôn luôn như vậy.

Xem nếu đây là những gì bạn muốn.

BIÊN TẬP:

Tôi nghĩ rằng giải pháp thực sự được sử dụng một cách gián tiếp, bởi vì người quản lý mạng tạo ra máy chủ lắng nghe trên 127.0.0.1, nhưng tôi được cho biết rằng đây là một chi tiết triển khai không nên tính vào. Tôi nghĩ rằng nếu bạn nhập địa chỉ DNS trước mục này, chúng có thể được sử dụng, nhưng tôi không chắc chính xác cách thức hoạt động của nó. Tôi nghĩ tốt nhất nên sử dụng trình quản lý mạng trong hầu hết các trường hợp, khi có thể.


2
cảm ơn, vâng, điều đó dường như đang hoạt động, mạng ubfox có vẻ khó hiểu, vì vậy tôi có thể đặt các máy chủ dns trong giải quyết.
Anurag Uniyal

Nếu bạn sử dụng GUI, thì nơi tốt nhất để đặt nó là bằng cách tạo hồ sơ trong Hộp thoại Kết nối mạng. Tôi đã nhân đôi mặc định, sau đó chỉnh sửa bản sao để thực hiện các thay đổi tôi muốn, giữ nguyên mặc định để đảm bảo tôi luôn có một hồ sơ làm việc. Sau đó, thật dễ dàng để chuyển đổi hồ sơ. Tôi không biết làm thế nào để làm điều này mà không cần GUI, nhưng có một người dùng "James Henstridge", người rất am hiểu về mạng của Ubuntu; bạn có thể thử tìm kiếm Askubfox để biết thông tin của anh ấy. Ông nói với tôi về lệnh tôi đã đưa cho bạn trong bài viết này .
Marty Fried

1
stgraber.org/2012/02/24/dns-in-ubfox-12-04 là một bài viết hay về độ phân giải DNS trong
ubfox

6
Thay vào đó, tôi đang sử dụng 15.04 và 'nmcli dev show | grep DNS' hoạt động với tôi.
flickerfly

1
@vcardillo: câu hỏi ban đầu nêu: "Tôi đang sử dụng Ubuntu 12.04 LTS". Đã 5 năm kể từ khi tôi đăng câu trả lời của mình. Không có gì tồn tại mãi mãi.
Marty Fried

85

Điều này hợp lệ cho Ubuntu 13.10 trở về trước. Đối với Ubuntu 14.04 trở lên, hãy xem câu trả lời của Koala Yeung về: Làm thế nào để biết tôi đang sử dụng DNS nào trong Ubuntu từ 14.04 trở đi


Sử dụng

nm-tool

Bạn sẽ nhận được một đầu ra tương tự như

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

Hoặc để xem chỉ DNS

nm-tool | grep DNS

1
chỉ muốn bổ sung, vào nm-appletmenu thông tin kết nối cũng sẽ hoạt động :)
Samik

1
+1 điều này cũng hoạt động, cũng như nm-cli như được trả lời bởi @Marty Fried
Anurag Uniyal

2
cũng hoạt động rất tốt trên Lubfox 14.04. cảm ơn
jamescampbell

2
công cụ nm không được tìm thấy vào ngày 15.10
mê cung

1
vâng, điều này không còn hoạt động nữa ... không nm-tooltrong 16 lần. nmcli(trong câu trả lời của Marty Fried) là con đường để đi
Lambart

46

Hai câu trả lời hàng đầu nmcli dev list iface <interfacename> | grep IP4nm-toolcả hai đều cho rằng người quản lý mạng đang kiểm soát. Đó là - trên máy tính để bàn hầu hết thời gian ít nhất. Nhưng câu trả lời đầy đủ hơn là đôi khi người quản lý mạng không kiểm soát được. Ví dụ như gây vpncrối với /etc/resolv.conftrực tiếp.

Vì vậy: Trước tiên hãy kiểm tra xem 127.0.0.1/localhost có được sử dụng không. Điều này có thể được thực hiện với dig:

> dig something.unknown  | grep SERVER:
;; SERVER: 127.0.0.1#53(127.0.0.1)

Bây giờ bạn biết rằng chúng tôi đang sử dụng localhost. Đi trước với một trong những câu trả lời phổ biến. Tôi thích:

> nm-tool | grep DNS:
    DNS:             8.8.8.8

Nhưng nếu 127.0.0.1/localhost là không được sử dụng, sau đó nm-tool's và nmcli' s đầu ra sẽ gây hiểu nhầm:

> dig something.unknown  | grep SERVER:
;; SERVER: 172.22.216.251#53(172.22.216.251)
> nm-tool | grep DNS:
    DNS:             8.8.8.8

Ở đây, diglà chính xác và nm-toolthông tin là sai lệch. Trong các địa chỉ thực tế cục bộ với môi trường tôi đã VPN-ed được giải quyết chính xác. Tất cả những điều mà DNS của Google 8.8.8.8 không biết.

Điều này là do sau khi kết nối với VPN vpnc, nó đặt một dòng vào /etc/resolv.confđể nó trông giống như:

# 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
Đây là câu trả lời đầy đủ nhất
Marinos An

Cảm ơn bạn. Một số người trong chúng ta ở đây không sử dụng NM và điều đó tốt cho cộng đồng.
Stephen Boston

Chỉ cần hoàn thành, digtiện ích có thể dễ dàng cài đặt apt install dnsutils.
Daniele Brugnara

32

cat /etc/resolv.conf sẽ hiển thị các máy chủ DNS của bạn.

Bạn không thể sửa đổi resolv.conftrực tiếp với Ubuntu 12.04. Nếu bạn cần thay đổi chúng, bạn có thể thêm máy chủ DNS mới vào /etc/network/interfacestệp của mình bằng cách thêm vào như sau:

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

nơi xlà các máy chủ DNS mà bạn muốn sử dụng.

Nếu tôi là bạn, tôi sẽ gỡ cài đặt network-manager. Theo tôi đó là một đống tào lao.

Bạn có thể hoàn thành mọi thứ bạn cần làm thủ công mà không phải lo lắng về việc thay đổi cài đặt của mình, đặc biệt nếu bạn có nhiều NIC trên máy tính.


2
Tôi có phải khởi động lại bước sóng sau khi thực hiện thay đổi dns không?
Bhargav Nanekalva

1
--Cảm ơn. Điều đó thật tuyệt. Nó hoạt động ngay cả khi không có doanh nghiệp quản lý mạng.
Adam

"Cat /etc/resolv.conf sẽ hiển thị các máy chủ DNS của bạn". Nó không.
Marinos An

25

Trong Ubuntu 18.04, bạn có thể sử dụng systemd-resolve --status


NB nếu bạn cat /etc/resolv.conf nó thậm chí còn nói điều này
Rqomey

11

phiên bản nmcli 0.9.10

Bạn có thể sử dụng một trong hai lệnh sau:

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

2

Trong Ubuntu 15.10, bạn có thể nhận DNS

nmcli device show <interface name> 

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.