어떤 DNS 서버를 사용하고 있습니까?


248

Linux에서 사용중인 DNS 서버를 어떻게 확인할 수 있습니까? 네트워크 관리자를 사용하고 있으며 대학의 LAN에 유선으로 연결되어 있습니다. (도메인이 해결되지 않는 이유를 찾으려고합니다)

답변:


207

다음과 같은 합리적인 정보를 얻을 수 있어야합니다.

$ cat /etc/resolv.conf 

26
그러나 (현대 Linux의 경우) 내용에 /etc/nsswitch.conf따라 사용되는 이름 서비스 (DNS, LDAP 등) 및 순서가 결정됩니다. 말해봐 fgrep hosts: /etc/nsswitch.conf. DNS 만 참조하는 경우 /etc/resolv.conf네임 서버를 찾을 수있는 올바른 장소입니다. 그러나 mDNS (일명 ZeroConf, 일명 Avahi, 일명 Bonjour 등)를 사용하고있을 가능성이 있습니다.이 경우 상황은 사용중인 항목에 따라 다릅니다.
Alexios

27
이 파일은 일반적으로 Ubuntu에서 127.0.1.1을 가리 킵니다. 실제 업스트림이 아닌 로컬 DNS 캐시 서버입니다.
Barry Kelly

2
@BarryKelly 라우터가 무엇을 사용하는지 확인한 다음
Geremia

2
그리고 여러 업스트림 서버가 구성되어 있습니까? 현재 어느 것을 사용하는지 아는 방법?
Sylvain Leroux

4
당신은 같은 대답을 얻을 때보다 강력한 다양한 상황에서 접근, 예를 들면 위해 @ G32RW 또는 @Lonniebiz으로 답변을 참조하십시오127.0.0.53
nealmcb

193

내가하는 방법은 다음과 같습니다.

nmcli dev show | grep DNS

이것은 이전의 일을 위의 방식 :

nm-tool | grep DNS

14
VPNNetworkManager를 사용하는 경우 유용합니다 . 당신 /etc/resolv.conf과 당신의 컴퓨터를 가리 킵니다 dnsmasq으로 구성된 이름을 확인할 네트워크 매니저 .
Grzegorz Żur

6
데비안에서는 network-manager패키지 가 필요합니다 .
TranslucentCloud

2
최신 리눅스에서는 nm-tool을 사용할 수 없습니다. 예를 들어 그것은 데비안 제의 '네트워크 매니저 패키지 아니다
밝은 돈

2
2016 년에 저에게 효과가있는 것을 반영하여 답변을 업데이트했습니다.
Lonniebiz

3
이것이 정답입니다. resolve.conf는 항상 진실을 보여주지는 않습니다
blade

72

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


8
데비안에서는 dnsutils패키지 가 필요합니다 .
Faheem Mitha

6
로컬 컴퓨터에서 실행되는 DNS 마스킹 / 캐싱 서비스를 사용하면 실제 DNS 서버가 숨겨집니다.
karatedog

3
우분투 18.04은 로컬 DNS 캐시를 보여줍니다SERVER: 127.0.0.53#53(127.0.0.53)
wisbucky

58

그냥하세요 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

1
프롬프트에 무엇을 입력해야하는지 예를들 수 있습니까?
chovy 2016 년

예 : $ nslookup www.google.com
Ren

7
데비안에서는 dnsutils패키지 가 필요합니다 .
Gayan Weerakutti

5
최근 우분투에서 이것은 다시이 주석
FriendFX

CentOS 7에서는 오류와 함께 종료되지만 vm이므로 nslookup google.comWindows 호스트에서 수행했으며 네임 서버를 찾았습니다. 다음 /etc/resolv.conf과 같이 추가하고 nameserver xx.xx.xx.xxservice를 다시 시작 network하면 모두 정상입니다. 칭찬 해
WesternGun

54

systemd 사용을 실행하는 시스템에서 :

systemd-resolve --status

3
systemd-해결 : 알 수없는 옵션 '--status'
아큐 메 너스

@ABB 시스템? 시스템 버전?
G32RW

229-4ubuntu21.2
Acumenus

10
Ubuntu 18.04 Bionic Beaver에서이 작업을 수행하는 새로운 기본 방법입니다. 모두 익숙해 지십시오!
AveryFreeman

4
나머지는 127.0.0.53 반환 이것은 나를 위해 일한 유일한 솔루션입니다
greuze

13

새로운 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.
Sopalajo de Arrierez

Ubuntu 15.10의 네트워크 관리자 1.0.4에서 제대로 작동합니다. 이전 버전이 있습니까?
Sameer

테이블 형식은 매우 나쁩니다. Powershell과 비슷한 형식의 열을 얻고 싶습니다.
CMCDragonkai

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

단순히 nmcli우분투 19.04에 필요한 모든 것
존 미

9

첫 번째 DNS 서버를 얻으려면 (IP 전용) :

cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2
  • cat DNS 설정을 출력합니다
  • grep 네임 서버 만 필터링
  • head 첫 번째 행 / 인스턴스 만 유지합니다
  • cut 행의 IP 부분을 가져옵니다 ( ''를 구분 기호로 사용하여 두 번째 열)

환경 변수에 DNS ip를 넣으려면 다음과 같이 사용할 수 있습니다.

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

2
grep -m 1첫 번째 경기 후 일치를 중지하므로 사용할 필요가 없습니다head
sshow

파이프 라인을 훨씬 더 가볍게하기 위해 Perl regexp를 사용하여 그룹을 캡처하면 매우 깔끔하며 grep은 파일 인수를 사용 grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf합니다. grep perl 정규 표현식으로 Capture 그룹을
sshow

8

네트워크 관리자를 사용하는 경우 대학의 DHCP 서버에서 모든 네트워크 매개 변수를 얻을 수 있습니다.

쉘을 사용하여 dns 설정을 확인하지 않으려면 (hesse 및 Alexios에서 설명한대로) "네트워크 정보"패널에서 해당 설정을 볼 수 있습니다.

네트워크 관리자 아이콘에서 마우스 오른쪽 버튼을 누르고 메뉴에서 "연결 정보"를 선택하면이 패널에 접근 할 수 있습니다.


5

사용 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

호환성 을 위해 Ubuntu 18.10과 같이 많은 배포판에 systemd-resolve대한 심볼릭 링크입니다 resolvectl.

$ 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

우분투 18.10에서 완벽하게 작동합니다.
Georgе Stoyanov

3

명령

 nmcli dev list iface <interfacename> | grep IP4

"인터페이스 이름"을 사용자의 것으로 바꾸십시오.

Examlpe

 nmcli dev list iface eth0 | grep IP4

모든 DNS 서버가 나열됩니다 (하나 이상을 사용하는 경우).


nmcli dev list iface [devicename]올바른 명령입니다
sebix

<>를 사용하기 때문에 <인터페이스>가 숨겨져있는 것을 보지 못했습니다.
Maythux

1
데비안에서 오류가 발생합니다 --- $ nmcli dev list iface eth0 Error : 'dev'command 'list'is valid.
밝게 돈

nmcli는 RH 특정 명령입니다.
Rui F Ribeiro

정답입니다!
VAdaihiep

3

나는 Fedora 25를 가지고 있으며 sudo 명령과 명령 행에서 비슷한 느린 응답을 보였습니다.

nmcli dev show | grep DNS 

내 3 개의 어댑터 중 하나 (2 개의 활성) 만 DNS 항목을 가지고 있음을 보여주었습니다. 엔트리가없는 하나의 활성 카드에 DNS 엔트리를 추가함으로써-presto! 모든 것이 좋고 응답 시간이 즉각적입니다.


아마 대안
Amos Folarin


0

dns를 찾았다 고 생각되면 dig :로 직접 쿼리 할 수 ​​있습니다 dig @<dns ip> <host to lookup>. 작동 SERVER하면 상태가으로 표시 NOERROR됩니다.

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