시스템에서 사용하는 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

그러나 "Network Manager GUI Tool"로 이동하면 무선 섹션에 서버가 표시되지 않고 "DNS 192.168.1.1 8.8.8.8 8.8.4.4"가 표시됩니다.

명령 줄에서 동일한 정보를 얻을 수 있습니까?

우분투 12.04 LTS를 사용하고 있습니다


무엇을 찾으려고합니까? 시스템에서 사용중인 DNS 서버? 또는 DNS 조회를 시도하고 있습니까?
토마스 워드

전 @LordofTime
ish

@LordofTime DNS 서버는 내 시스템에 의해 사용되는
아 누락 Uniyal을

127.0.0.1을 사용하고 있습니다. DNS 서버 를 운영 하고 있습니까?
Skaperen

이 질문의 비 우분투 버전에 대해서는 unix.stackexchange.com/q/28941/38647 을 참조하십시오
mwfearnley

답변:


250

직접 구현하지 않으면 resolv.conf는 더 이상 실제로 사용되지 않습니다. 이제 네트워크 관리자가 수행합니다. 때때로 OpenDNS에서 Google의 공개 DNS로 전환 할 때 시스템의 DNS 서버를 나열하기 위해 별칭을 만들었습니다.

우분투> = 15

nmcli device show <interfacename> | grep IP4.DNS

우분투 <= 14

nmcli dev list iface <interfacename> | grep IP4

필자의 경우 <interfacename>is eth0가 일반적이지만 항상 그런 것은 아닙니다.

이것이 원하는 것인지 확인하십시오.

편집하다:

네트워크 관리자가 127.0.0.1에서 수신 대기하는 서버를 작성하기 때문에 resolv.conf가 실제로 간접적으로 사용된다고 생각하지만, 이것이 구현 세부 사항이라고 말하면 안됩니다. 이 항목을 입력하기 전에 DNS 주소를 입력하면 제대로 사용될 수 있지만 이것이 어떻게 작동하는지 잘 모르겠습니다. 가능한 경우 대부분의 경우 네트워크 관리자를 사용하는 것이 가장 좋습니다.


2
고맙습니다, 예, 작동하는 것 같습니다. 우분투 네트워킹이 혼란스러워 보입니다 .resolve.conf / base 또는 / etc / network / interfaces 또는 네트워크 관리자에서 dns 서버를 설정할 수 있습니다. 우분투 네트워킹에 대한 명확한 안내서가 있습니까?
Anurag Uniyal 2016 년

GUI를 사용하는 경우 네트워크 연결 대화 상자에서 프로파일을 작성하는 것이 가장 좋습니다. 기본값을 복제 한 다음 사본을 편집하여 원하는 변경 작업을 수행하고 기본값을 유지하여 항상 작동하는 프로파일을 유지하도록했습니다. 그런 다음 프로필을 쉽게 전환 할 수 있습니다. GUI없이이 작업을 수행하는 방법을 모르지만 Ubuntu의 네트워킹에 대해 잘 알고있는 "James Henstridge"사용자가 있습니다. 자신의 정보를 위해 askubuntu를 검색해 볼 수 있습니다. 그는 내가이 포스트 에서 당신에게 준 명령에 대해 나에게 말했다 .
Marty Fried

1
stgraber.org/2012/02/24/dns-in-ubuntu-12-04는 우분투 12.04에서 DNS 확인 abount 멋진 기사입니다
아 누락 Uniyal

6
15.04를 사용하고 있는데 'nmcli dev show | grep DNS'가 대신 작동합니다.
flickerfly

1
@ vcardillo : 원래의 질문 : "우분투 12.04 LTS를 사용하고 있습니다". 답변을 게시 한 지 5 년이 지났습니다. 영원한 것은 없다.
Marty Fried

85

이것은 Ubuntu 13.10 및 이전 버전에 유효합니다. Ubuntu 14.04 이상에 대해서는 Koala Yeung의 답변 : 14.04부터 Ubuntu에서 내가 사용하는 DNS를 확인하는 방법을 참조하십시오 .


사용하다

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 이것은 또한 작동합니다. @Marty Fried
Anurag Uniyal의

2
lubuntu 14.04에서도 잘 작동합니다. 감사합니다
jamescampbell

2
NM-도구는 15.10에서 찾을 수 없습니다
미로

1
예, 이것은 더 이상 작동하지 않습니다 ... nm-tool16.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 의 및 nmcli출력이 잘못 될 수 있습니다.

> 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으로 연결 한 환경의 로컬 주소는 올바르게 확인됩니다. Google의 DNS 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을 사용하지 않으므로 커뮤니티에 좋습니다.
Stephen Boston

완료를 위해이 dig유틸리티를로 쉽게 설치할 수 있습니다 apt install dnsutils.
Daniele Brugnara

32

cat /etc/resolv.conf DNS 서버를 보여 주어야합니다.

resolv.confUbuntu 12.04를 사용 하여 직접 수정할 수 없습니다 . 그래도 변경해야 할 경우 /etc/network/interfaces다음을 추가 하여 파일에 새 DNS 서버를 추가 할 수 있습니다 .

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

x사용하려는 DNS 서버는 어디에 있습니까 ?

내가 당신이라면, 나는 제거 할 것 network-manager입니다. 내 의견으로는 그것은 쓰레기 더미입니다.

특히 컴퓨터에 여러 개의 NIC가있는 경우 설정 변경에 대한 걱정없이 수동으로 수행해야하는 모든 작업을 수행 할 수 있습니다.


2
DNS 변경을 수행 한 후 nm를 다시 시작해야합니까?
Bhargav Nanekalva

1
--감사. 대단하다. 네트워크 관리자가 없어도 작동합니다.
Adam

"cat /etc/resolv.conf에 DNS 서버가 표시되어야합니다". 그렇지 않습니다.
마리노스 An

25

Ubuntu 18.04에서는 다음을 사용할 수 있습니다 systemd-resolve --status


NB 만약 당신이 /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


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.