작업 표시 줄의 NetworkManager 표시기를 사용하여 DNS 서버를 전환하는 경우가 있습니다. 이것은 이전 버전에서 잘 작동했으며 실제로 12.04에서도 잘 작동합니다. 단, Conky를 사용하여 DNS 주소를 포함한 일부 시스템 정보를 표시하면 항상 표시 127.0.0.1
됩니다.
나는 resolv.conf
이 주소를 얻는 곳을 보았고 , 그것이 항상 그것이 말하는 것입니다. 파일을 직접 편집하지 말라고 권고하는 한 줄이 있습니다.
nameserver 127.0.0.1
내가 지금 DNS 서버 주소를 확인하는 유일한 방법은 네트워크 관리자 GUI를 열어 정보 페이지를 확인하는 것입니다. 그렇다면이 정보는 어디에 저장됩니까?
답변
정보는 Network Manager에 의해 내부적으로 관리됩니다. 포함 된 nmcli
도구를 사용하여 명령 행에서이 정보를 얻을 수 있습니다 .
다음 명령을 사용하여 특정 네트워크 인터페이스에 대한 Network Manager 정보를 검색 할 수 있습니다.
nmcli dev list iface eth0
( eth0
연결중인 인터페이스로 교체하십시오 ). 출력에는 인터페이스 및 해당 인터페이스에서 현재 활성화 된 연결에 대한 정보가 포함됩니다.
GENERAL.DEVICE: eth0
GENERAL.TYPE: 802-3-ethernet
...
IP4.DNS[1]: 192.168.0.1
...
이 출력에서 얻은 정보를 추출하는 것이 너무 어렵지 않아야합니다.
의 출력에 의존하지 않는이 데이터에 액세스하는 프로그래밍 방식이 필요한 경우 nmcli
Network Manager의 D-Bus 인터페이스에서도이 정보를 사용할 수 있습니다.
답변
우분투 개발자는에 이러한 변경 사항을 문서화해야 /etc/resolv.conf
하지만 그렇지 않습니다.
다음은 빠른 명령 목록입니다.
-
현재 DNS 서버 표시
nm-tool | grep DNS
-
에서 정적 DNS 서버를 정의하십시오
/etc/dhcp/dhclient.conf
. 다음 줄을 추가하고 로컬 확인자를 다시 시작하십시오.supersede domain-search "sub.mydomain.com", "domain.com"; prepend domain-name-servers 192.168.0.1;
명령 프롬프트에서 :
invoke-rc.d network-manager restart
답변
nmcli를 사용한다고해서 항상 완전한 답을 얻을 수있는 것은 아닙니다. 예를 들어 openconnect (또는 아마도 vpnc)를 사용하여 VPN을 시작하고 resolvconf 패키지가 설치되어있는 경우 (/etc/resolv.conf 자동 관리를 위해) 여전히 자동으로 127.0.0.1보다 먼저 /etc/resolv.conf에 VPN의 DNS 설정. 이 경우 “nmcli -f IP4 dev list”를 확인하면 실제 DNS 목록이 표시되지 않습니다. 이 시나리오가 당신에게 영향을 미치는지 확실하지 않지만 언급 할 가치가 있다고 생각했습니다.