Linux에서 DHCP 연결을위한 DNS 서버 찾기


15

에 정의되어 있다는 것을 알고 /etc/resolv.conf있습니다.없는 경우 어떻게합니까? 보다 구체적으로 DHCP가 반환 한 DNS 서버를 어떻게 찾습니까?

그놈에서는 NetworkManager 애플릿을 사용하여 모든 연결의 기본 DNS를 볼 수 있습니다. 그러면 명령 줄에서 어떻게합니까?

답변:


22

일반적으로 dhclient.leases 파일은에 있으며 /var/lib/dhcp3/dhclient.leases다음 명령을 입력하십시오.

less /var/lib/dhcp3/dhclient.leases

또는

cat /var/lib/dhcp3/dhclient.leases

또는

grep 명령을 사용하여 DHCP 서버 주소를 얻으려면 다음을 입력하십시오.

grep dhcp-server-identifier /var/lib/dhcp3/dhclient.leases

또는

dhclient eth0


감사합니다! 누군가 이것을 찾는 경우, IPCop 파일은 /var/ipcop/dhcpc/dhcpcd-*.info에 있습니다
Ivan

이것은 하나의 DHCP 클라이언트에만 해당되지만 다른 DHCP 클라이언트 (예 : 펌프)가 있습니다.
bortzmeyer

1
나는 도망 ps aux | grep dhclient내 임대 파일로 설정 한 것을 발견 /var/run/dhclient.eth0.leases-lf옵션을 선택합니다.
Roger Dueck

8

최근에 dhcpcdDNS 서버를 설정하지 않아서 잘못 구성 된 이 문제가 발생했습니다 . 다음 명령을 사용하여 DHCP에서 사용할 수있는 네임 서버를 쿼리 할 수 ​​있다는 것을 알았습니다.

sudo dhcpcd -o domain_name_servers -T

이 명령은 많은 네트워크 연결 정보를 출력합니다. 로 시작하는 줄을 찾으십시오 new_domain_name_servers.

여기에서 이름 서버를 수동으로 설정할 수있었습니다.


2
완전한. 이것이 정답이되어야합니다.
drumfire

1
이것은 또한 나를 위해 일한 솔루션이었습니다.
Vidia

-o동일한 옵션을 모두 -T단독으로 덤프하면 switch가 필요한 이유 는 무엇입니까?

3

/var/lib/dhclient/dhclient-eth0.leases다른 사람이 찾을 수없는 경우에 DHCP 임대 정보를 찾았습니다./var/lib/dhcp3/dhclient.leases


2

글쎄, 왜 단순히 그것을 파지 않습니까?

marcus@marcus ~ $ dig google.de

; <<>> DiG 9.4.3-P3 <<>> google.de
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27579
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 6, ADDITIONAL: 0

;; QUESTION SECTION:
;google.de.         IN  A

;; ANSWER SECTION:
google.de.      1785    IN  A   209.85.229.104
google.de.      1785    IN  A   216.239.59.104
google.de.      1785    IN  A   74.125.77.104

;; AUTHORITY SECTION:
de.         23431   IN  NS  L.DE.NET.
de.         23431   IN  NS  Z.NIC.de.
de.         23431   IN  NS  F.NIC.de.
de.         23431   IN  NS  C.DE.NET.
de.         23431   IN  NS  S.DE.NET.
de.         23431   IN  NS  A.NIC.de.

;; Query time: 1 msec
;; SERVER: 192.168.1.15#53(192.168.1.15)
;; WHEN: Thu Sep 17 19:33:39 2009
;; MSG SIZE  rcvd: 181

마지막 줄을보십시오 : ;; 서버 : 192.168.1.15 # 53 (192.168.1.15)


원래 같은 생각을했지만 할당 된 DNS 서버를 모두 표시하지는 않습니까? dig는 특정 조회에 사용 된 것을 반환한다고 생각합니다. 두 번째로, 포스터가 지정하지 않았으므로 포스터에 만족하면 대답이 가장 쉬운 것입니다. :-)
KPWINC

예 해당 쿼리가 사용하는 DNS까지 오른쪽 출력만을 쇼 그래서 당신은 무엇을 볼 수 ... 있습니다 되어 정말 일어나고. 나는 무엇을 알아 내기 위해 솔루션의 벌금을 발견 한다 :-) 그것을 위해, 네 일이
마커스 슈피겔에게

그것은 내가 찾던 것이 아니었지만 어쨌든 감사합니다.
Ivan

1
DNS 서버가 응답하지 않으면 dig는 유용한 정보를 표시하지 않습니다. 요청한 DNS 서버를 뱉어 낼 수 있습니까?
Ivan

따라서 RingTFM 이후에는 /etc/resolv.conf에있는 모든 것을 사용하는 것을 볼 수 있습니다.
Ivan

1

/etc/resolv.conf에 아무것도 없으면 DNS 확인 (즉, /etc/nsswitch.conf에 정의 된 dns를 사용한 확인)이 작동하지 않습니다. 이것이 dig, host 및 libc 루틴이 DNS 확인을 위해 사용하는 것입니다. 이 파일에 아무것도 지정되어 있지 않으면 DNS 확인이 작동하지 않습니다 (NIS와 같은 다른 호스트 확인 방법이 구성된 경우 다른 방법을 통해 호스트 확인이 작동 할 수 있음).


1

이 명령은 인터넷상의 DNS 서버를 보여줍니다

발굴 | grep 서버 : | awk -F # '{print $ 1}'| awk -F : '{print $ 2}'

172.17.0.1


이것은 질문에 대답합니다. 실제로 질문에서 OP가 언급 한 접근 방식보다 신뢰성이 떨어집니다 /etc/resolv.conf. 모든 발굴도 읽은 후에 /etc/resolv.conf출력을 생성하기 전에 서버와 통신을 시도하십시오.
kasperd

0

읽어보십시오 /etc/resolv.conf. 그게 다야.

man resolv.conf 유용합니다.


그는 그것이 있다면 무엇을 말했다 제외시켰다 하지 가 ..
워렌

1
예, 그러나 저는이 점을 무시했습니다. libc 리졸버는 resolv.conf를 사용하기 때문에 resolv.conf가 있어야합니다.
보르 츠 마이어

0

현대 배포판에서는 다음과 같습니다

ps aux | grep dhcli | grep -v grep                                                    
root       367  0.0  0.0  16128  3076 ?        S    Apr30   0:00 /sbin/dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /var/run/dhclient-enp3s0.pid -lf /var/lib/NetworkManager/dhclient-324caec3-58f9-3f00-bff4-2f8bd7d2aafa-enp3s0.lease -cf /var/lib/NetworkManager/dhclient-enp3s0.conf enp3s0


tail -16 /var/lib/NetworkManager/dhclient-324caec3-58f9-3f00-bff4-2f8bd7d2aafa-enp3s0.lease
lease {
  interface "enp3s0";
  fixed-address 10.191.104.3;
  option subnet-mask 255.255.255.0;
  option routers 10.191.104.254;
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers 91.193.220.3,91.193.220.7;
  option dhcp-server-identifier 91.193.220.3;
  option ntp-servers 91.193.220.6;
  option broadcast-address 10.191.104.255;
  option domain-name "myISP.ru";
  renew 1 2017/05/01 12:56:02;
  rebind 2 2017/05/02 00:27:11;
  expire 2 2017/05/02 03:27:11;
}

여기서 91.193.220.7은 ISP의 DNS 서버입니다.

nslookup serverfault.com 91.193.220.7
Server:     91.193.220.7
Address:    91.193.220.7#53

Non-authoritative answer:
Name:   serverfault.com
Address: 151.101.1.69
Name:   serverfault.com
Address: 151.101.65.69
Name:   serverfault.com
Address: 151.101.193.69
Name:   serverfault.com
Address: 151.101.129.69

0

DHCP 서버를 쿼리하는 또 다른 솔루션 :

sudo nmap --script broadcast-dhcp-discover

출력은 DHCP 서버가 제공하는 네임 서버를 알려줍니다 :

Starting Nmap 7.60 ( https://nmap.org ) at 2019-12-12 23:50 UTC
Pre-scan script results:
| broadcast-dhcp-discover: 
|   Response 1 of 1: 
|     IP Offered: 144.123.211.44
|     DHCP Message Type: DHCPOFFER
|     Server Identifier: 144.123.99.200
|     IP Address Lease Time: 5m00s
|     Subnet Mask: 255.255.0.0
|     Router: 144.123.99.200
|     Domain Name Server: 144.123.99.200
|_    Domain Name: localdomain
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.