태그 보관물: network-manager

network-manager

DNS 서버 주소가 resolv.conf에 더 이상 저장되지 않습니다. 지금 어? 어? 주소를 얻는 곳을

작업 표시 줄의 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
...

이 출력에서 ​​얻은 정보를 추출하는 것이 너무 어렵지 않아야합니다.

의 출력에 의존하지 않는이 데이터에 액세스하는 프로그래밍 방식이 필요한 경우 nmcliNetwork Manager의 D-Bus 인터페이스에서도이 정보를 사용할 수 있습니다.


답변

우분투 개발자는에 이러한 변경 사항을 문서화해야 /etc/resolv.conf하지만 그렇지 않습니다.

다음은 빠른 명령 목록입니다.

  1. 현재 DNS 서버 표시

    nm-tool | grep DNS
    
  2. 에서 정적 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 목록이 표시되지 않습니다. 이 시나리오가 당신에게 영향을 미치는지 확실하지 않지만 언급 할 가치가 있다고 생각했습니다.


답변