NetworkManager가 /etc/resolv.conf 상단에 DNS 서버를 추가하도록하는 방법은 무엇입니까?


11

현재 내 /etc/resolv.conf는 다음과 같습니다.

# Generated by NetworkManager
nameserver 10.165.246.33
nameserver 192.135.82.60
nameserver 10.165.74.2

처음 두 이름 서버는 DHCP를 통해 자동으로 구성됩니다. 마지막은 NetworkManager에서 수동으로 추가 한 것입니다. 또한 내부 도메인 이름 (예 :)을 확인하므로 가장 중요합니다 build-server-17.our-company-domain.com.

문제는 NetworkManager가의 맨 아래 에 추가 /etc/resolv.conf하므로 인트라넷 URL에 액세스 할 때 브라우저가 처음 두 서버를 사용하여이를 해결하려고 시도하는데 시간이 오래 걸리는 것입니다.

NetworkManager가 수동으로 구성된 DNS 서버 자동으로 구성된 DNS 서버 앞에 추가하려면 어떻게해야 합니까?


1
일반적으로 resolv.conf의 모든 DNS 서버는 동일한 결과를 반환해야합니다. 서버가 혼합되어 있으면 간헐적 인 오류와 많은 고통에 대한 레시피가 있습니다.
Philip Kendall

답변:


3

구체적으로 해결해야 할 시스템이 보이지 않지만를 사용 resolvconf하는 경우 다음을 루트 ( su -또는 sudo -i) 로 시도하십시오 .

echo 'nameserver 10.165.74.2' >> /etc/resolvconf/resolv.conf.d/head
resolvconf -u

해당 파일에는 수동 변경 사항을 덮어 쓰게된다는 경고가 표시됩니다. 그러나 문맥 상이 메시지는에 적용 /etc/resolv.conf되지 않습니다 /etc/resolvconf/resolv.conf.d/head.

원하는 이름 서버를 목록에서 먼저 배치해야합니다. 물론 운영 체제에서 작동하면 NetworkManager에서 10.165.74.2를 제거 할 수 있습니다.

로컬 리졸버 dnsmasq도 훌륭한 경로입니다. 를 사용하면 dnsmasqDNS 및 DHCP를 훨씬 더 많이 제어 할 수 있습니다. 예를 들어,이 시나리오에서는 dnsmasq지정된 도메인 이름을 기반으로 특정 이름 서버를 server옵션으로 쿼리 할 수 ​​있습니다 . dnsmasq.conf아래 목표와 관련된 스 니펫을 참조하십시오 .

# Add other name servers here, with domain specs if they are for
# non-public domains.
server=/our-company-domain.com/10.165.74.2

최신 정보

운영 체제를 언급 해 주셔서 감사합니다. CentOS 7에는 많은 방법이 있습니다. GUI에서 응용 프로그램> 시스템 도구> 설정> 네트워크를 클릭하십시오. 구성 할 연결을 선택하십시오.

CentOS 7 NetworkManager-연결 구성

자동 DNS 및 공급 이름 서버를 끕니다. 구성을 적용하십시오.

CentOS 7 NetworkManager-고정 DNS 설정 적용

다음에 NetworkManager가 해당 연결을 시작할 때 사용자 정의 값을 씁니다. (테스트하는 동안 두 개의 네트워크 연결이있어 네트워크를 껐다가 다시 켰습니다.)

에 따르면 문서 ,

  1. nmtui NetworkManager에 대한 간단한 curses 기반 텍스트 사용자 인터페이스 (TUI)를 사용할 수 있습니다.
  2. 사용자와 스크립트가 NetworkManager와 상호 작용할 수 있도록 명령 행 도구 인 nmcli가 제공됩니다. nmcli는 서버와 같은 GUI가없는 시스템에서 NetworkManager의 모든 측면을 제어하는 ​​데 사용할 수 있습니다. GUI 도구와 동등한 입장에 있습니다.

특히 nmcli 설명서 가 매우 좋아 보였다.


1
죄송합니다 resolvconf. 패키지 가없는 CentOS 입니다. dnsmasq그래도 좋은 해결책처럼 보입니다.
초보자 리눅스 사용자

8

실수로 여기에 중복 질문을 만들었습니다 . 답이 있지만 본질적으로 다음을 작성해야합니다.

/etc/dhcp/dhclient.conf

존재하지 않는 경우 다음을 추가하십시오.

prepend domain-name-servers [ip address of server];

마지막에 세미콜론을 잊지 마십시오!

그 후, 단순히 재부팅하면 자동으로 '/etc/resolv.conf'의 'nameserver [ip address of server]'줄이 맨 위로 올라갔습니다!


대단해! 이것이 NetworkManager에서 사용하는 백엔드이며 모든 Wi-Fi 연결 (정적 아님)에서 작동하도록하는 유일한 방법입니다. 감사 !
Adrien M.

0

NetworkManager.service를 끌 필요가없는 다른 방법이 있습니다. ifcfg-idevice를 설정하십시오.

PEERDNS=no
DNS1=10.165.74.2
DNS2=OTHERDNS
DOMAIN=DEMO.COM

다음과 같이 /etc/NetworkManager/NetworkManager.conf 설정을 지정할 필요가 없습니다.

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