14.04부터 Ubuntu에서 내가 사용하는 DNS를 확인하는 방법


14

( 12.04에 대한 유사한 질문에 대한 후속 조치 )

Ubuntu 12.04 이전에는에서 활성화 된 DNS를 볼 수 있습니다 /etc/resolv.conf. Ubuntu 12.04에서 NetworkManager는 더 이상 파일과 작동하지 않습니다. 명령 행 도구를 직접 참조해야합니다 nm-tool.

흥미롭게도 nm-tool14.04 이상에서는 더 이상 기본적으로 설치되지 않습니다. 당신은 여전히을 통해 설치할 수 있지만 apt-get install모든 우분투가 그것을 즉시 사용할 수 있다고 가정 할 수는 없습니다.

그래서 질문은 남아 있습니다. 기본적으로 설치시 명령 줄에서 사용중인 DNS를 어떻게 알 수 있습니까?

답변:


30

빠른 답변

새로운 NetworkManager 도구 nmcli가 기본적으로 설치됩니다. 명령 행 도구는 매우 강력하지만 배우기가 조금 더 어렵습니다. 우리의 질문에 충실하면 짧은 대답은 다음과 같습니다.

nmcli dev show | grep DNS

또는 더 깨끗한 출력을 위해

nmcli dev show | grep DNS | sed 's/\s\s*/\t/g' | cut -f 2


설명

시간이 있다면 위의 점보를 설명 할 수 있습니다.

  1. nmcli dev show

    이전 nm-tool명령 과 약간 비슷합니다 . 현재의 네트워킹 정보를 정교화합니다.

    인터페이스 이름을 추가하여 특정 인터페이스의 설정을 배울 수도 있습니다. 예를 들어의 정보를 배우려면를 eth0사용할 수 있습니다 nmcli dev show eth0.

  2. grep DNS

    텍스트에 "DNS"라는 줄만 넣으십시오.

  3. sed 's/\s\s*/\t/g' | cut -f 2

    이것은 출력을 정리하기위한 것입니다. 은 cut열에 의한 출력을 선택할 수 있지만, (하면서 분리기로만 1 문자 걸리는 nmcli용도 MANY SPACE). 는 sedTAB으로 원래의 출력에서, 공간집니다.


7
+1. 그러나이 유틸리티에 대해 몰랐지만 Ubuntu 14.04를 실행하고 내 명령은 nmcli d list입니다. 그 외에는 여기 좋은 것들!
Terrance

1
sed는 확장 정규식에 -E 플래그를 사용하여 다음 r+대신에rr*
Squidly

1
이 답변의 버전은 무엇입니까? 내 Trusty의 nmcli 버전 0.9.8.8 nmcli dev show에서 큰 곱슬 오류 메시지가 발생합니다.
Oli

5
@Oli nmcli dev show은 15.04의 nmcli에 속합니다. 어떤 이유로 오래된 nmcli는 불안정한 것으로 간주되었다. . . 이제 nmcli페도라와 같은 플래그를 사용 합니다. 아마도 시스템으로 전환했기 때문일 것입니다. 이 답변은 15.04에 적합하지만 14.04에 적합하지 않기 때문에 나는 그것을
하향 표명하기를 원합니다.

1
위의 의견을 반영하고 싶습니다 .15.04에서는 정확하지만 14.04에서는 정확하지 않습니다.
Alex

4

패킷 분석은 사용하는 NetworkManager 또는 기타 네트워크 연결 도구에 관계없이 작동하는 대체 방법입니다. 기본 아이디어는 nslookup패킷이 어디로 이동하고 두 번째 터미널에서 dns 쿼리를 보내는 것입니다.

이를 위해 처음으로 네트워크에 연결해야하므로 연결을 방해하지 않고 다음 명령을 실행하십시오.

sudo tcpdump -vv -i wlan0 -W 1200 | grep google.com  

대체 터미널 실행에서 :

nslookup google.com 

에서 패킷 목록을 가져 오면 tcpdumpIP 주소에서 어디로 가는지 확인하십시오.

예를 들어

$ sudo tcpdump -vv -i wlan0 -W 1200 | grep google.com                            
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
    eagle.29862 > b.resolvers.Level3.net.domain: [udp sum ok] 64057+ [1au] A? google.com. ar: . OPT UDPsize=4096 (39)
    b.resolvers.Level3.net.domain > eagle.29862: [udp sum ok] 64057 q: A? google.com. 11/0/0 google.com. A 173.194.115.64, google.com. A 173.194.115.65, google.com. A 173.194.115.72, google.com. A 173.194.115.66, google.com. A 173.194.115.69, google.com. A 173.194.115.78, google.com. A 173.194.115.70, google.com. A 173.194.115.71, google.com. A 173.194.115.68, google.com. A 173.194.115.67, google.com. A 173.194.115.73 (204)
    eagle.16429 > b.resolvers.Level3.net.domain: [udp sum ok] 38822+ A? google.com. (28)

보시다시피, 내 랩탑 eagle은 패킷을 대학의 dns로 보냅니다 b.resolvers.Level3.net.domain. IP 주소를 보려면을 사용하여 -n플래그를 사용할 수 있습니다 tcpdump.

예를 들면 다음과 같습니다.

$ sudo tcpdump -n -vv -i wlan0 -W 1200 | grep google.com                         
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
    10.10.87.145.56474 > 4.2.2.2.53: [udp sum ok] 15606+ A? google.com. (28)

2

네트워크 연결을 확인하십시오.

ls /etc/NetworkManager/system-connections/

구성 할 연결을 선택하십시오.

 sudo cat /etc/NetworkManager/system-connections/Internet | grep dns

연결 이름없이 "인터넷"을 교체하십시오.


사용은 여전히 ​​사용할 수 있습니다 nm-tool:

nm-tool | grep DNS

다음을 사용하여 U14.04 이상에 설치하십시오.

sudo apt-get install nm-tool

예:

nm-tool | grep DNS
    DNS:             192.168.1.1
    DNS:             192.168.10.1
    DNS:             192.168.11.1

1

버전 14.04에서는 네트워크 관리자와 함께 번들로 제공되므로 기본적으로 계속 사용할 수 있습니다. 이후 네트워크 관리자 (버전 15.04 이상)에서 삭제되었으며 apt-get을 통해서도 사용할 수 없습니다.

현재 버전 15.04에서는 이전 패키지에서 nm-tool을 수동으로 다운로드하여 추출 할 수 있습니다. 다음 명령을 실행하십시오.

먼저 작업 할 임시 디렉토리를 작성하십시오.

cd
mkdir APTGET;cd APTGET

그런 다음 이전 버전을 다운로드하고 파일을 추출하십시오.

wget 'http://us.archive.ubuntu.com/ubuntu/pool/main/n/network-manager/network-manager_0.9.8.8-0ubuntu7.1_amd64.deb'
ar xvf *
tar xvf dat*

새로운 디렉토리를 만드십시오 :

mkdir ~/bin

(라고 file already exists표시되면 메시지를 무시하고 계속 진행하십시오).

파일을 새 디렉토리에 복사하십시오.

cp ./usr/bin/nm-tool ~/bin

홈 디렉토리로 돌아가서 임시 디렉토리를 삭제하십시오.

cd ..
rm -R APTGET

이제 nm-tool의 별명을 설정하십시오.

cp ~/.bashrc ~/.bashback
echo 'alias nm-tool="~/bin/nm-tool"' | tee -a ~/.bashrc;. ~/.bashrc

현재 사용자는 이제 터미널에서 nm-tool을 실행할 수 있어야합니다.


또한 사용중인 실제 DNS 확인 프로그램을 모두 정확하게 제공하지 못할 수 있습니다 .

DNSleaktest.com 에서 전체 보고서를 얻을 수 있습니다 . 전체 보고서를 보려면 Extended Test 를 클릭하십시오 .


1

실제로 NetworkManager는을 사용 /etc/resolv.conf합니다. 그러나 NetworkManager는 많은 사람들과 관련이없는 모호한 기술적 이유로 인해 자체 내부 DNS 서비스를 사용하기 때문에 기본 설정에서 DNS 서버 resolv.conf는 입니다. 이것이 NetworkManager가 내부적으로 사용하는 DNS 서버를 확인 하기 위해 사용해야 하는 이유 입니다.127.0.0.1nmcli

그러나이 동작을 비활성화하고 사용중인 실제 DNS 서버가에 나열된 이전 서버로 돌아갈 수도 있습니다 resolv.conf. 이렇게하려면의 행 dns=dnsmasq을 주석 처리 /etc/NetworkManager/NetworkManager.conf하고 재부팅하십시오. 대부분의 사람들에게 이것은 실제 DNS 서버가 이제에 표시된다는 사실을 넘어서는 차이가 없습니다 resolv.conf. 변경 사항이 도입 된 모퉁이 사례 중 하나 인 경우이 상황이 빠르게 나타나고 줄을 주석 해제하여 기본 동작으로 되돌릴 수 있습니다.


1

nmcli 개발 목록 | grep DNS

다음과 같이 출력됩니다.
IP4.DNS[1]: 8.8.8.8 IP4.DNS[1]: 8.8.8.8 IP4.DNS[2]: 8.8.4.4

위 명령은 Ubuntu 16.04 이전에 작동
합니다. Ubuntu 16.04의 경우 :
nmcli dev show | grep DNS


당신은 아마 의미 nmcli dev show하지 nmcli dev list?
holmb

파고 들었는데 우분투 14.04와 16.04 사이에서 CLI가 변경 된 것으로 보입니다. 분명히 nmcli dev list14.04에서는 작동하지만 16.04에서는 작동하지 않습니다.
holmb

1

누군가 우분투 18.04LTS에 대해 나와 같은 질문을하는 경우 :

네트워크 관리자를 통해 관리되는 모든 네트워크 장치를 나열하십시오.

networkctl list

특정 장치의 구성 표시 :

networkctl status eth0

eth0 대신에 목록에 표시된 네트워크 장치 이름을 입력해야합니다. DNS 항목이 없으면 카드에 구성된 네임 서버가없는 것입니다

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