어떤 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
VPN 및 NetworkManager를 사용하는 경우 유용합니다 . 당신 /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.