/etc/resolv.conf.d에서 /etc/resolv.conf의 변경 사항을 구현하는 "올바른 방법"은 무엇입니까?

/etc/resolv.conf.d에서 /etc/resolv.conf의 변경 사항을 구현하는 "올바른 방법"은 무엇입니까?

과거에는 resolv.conf정적인 파일을 사용하여 직접 편집했습니다.

나중에 DHCP 클라이언트는 일부 정적 항목과 DHCP 임대에서 얻은 항목을 사용하여 이를 다시 작성합니다.

요즘에는 내 배포판(Linux Mint 18.1)과 같은 일부 배포판에는 /etc/resolv.conf.d여러 스크립트 하위 디렉터리를 갖는 메커니즘이 있는데, 알아낼 수 없습니다.

그렇다면 올바른 접근 방식은 무엇입니까 ...

  • DHCP 임대로 얻은 DNS 서버를 사용할지 여부를 표시합니까?
  • 항상 resolv.conf에 고정 항목을 추가합니까, 아니면 네임서버가 DHCP 임대를 얻지 못하는 경우 대체입니까?
  • 파일의 상대적 순서를 결정하시겠습니까?

필요한 경우 일부 스크립트를 직접 작성하는 것은 괜찮습니다. 기존 메커니즘을 "파괴"하거나 중복 작업을 수행하고 싶지 않습니다.

답변1

대답은 간단하다.resolv.conf.d폴더는 /etc/resolvconf/에 있으며 head/base/original 및 tail 파일을 포함합니다. 각각 수정하면 업데이트됩니다resolv.conf파일은 /etc/에 있습니다.

/etc/의 시작 부분에 일부 정적 DNS 주소를 추가한다고 가정하면 resolv.conf(재부팅할 때마다 자동으로 기본 설정으로 재설정되므로) 다음을 편집해야 합니다.head파일을 /etc/resolvconf/resolv.conf.d/ 작성하고 예를 들어 다음을 입력하십시오.

nameserver 1.1.1.1
nameserver 1.0.0.1

그런 다음 다음 명령을 사용하여 resolvconf 서비스를 다시 시작합니다.

sudo service resolvconf restart

이제 고양이resolv.conf/etc/에서 새로운 변경 사항을 볼 수 있습니다.

파일 맨 아래에 무언가를 넣으려면 동일한 내용이 적용됩니다.tail바꾸다head/etc/resolvconf/resolv.conf.d/에서

추신: 이것은 100% 테스트되었으며 Ubuntu 및 Debian에서 작동합니다.

편집: 귀하의 질문에 대한 마지막 두 개의 주요 항목에 답변했으며 이제 DHCP에서 제공하는 DNS 주소를 사용하지 않는 방법을 논의하는 첫 번째 주요 항목에 도달했습니다. 이는 실제로 설치한 DNS 소프트웨어/패키지에 따라 다르므로 다음 사항을 확인하는 것이 좋습니다.우편 엽서, 다음 내용도 읽어 보시기 바랍니다(있는 경우) dnsmasq.

답변2

지난 몇 년 동안solv.conf 및 유사한 메커니즘이 있었습니다. 이 파일을 처리 dhclient하는 명령줄이 있지만 resolvconf최근 몇 년 동안 Linux에서는 NetworkManager를 구성하는 새로운 인터페이스를 도입했습니다.나미클리. 이는 모든 영구 네트워크 구성(런타임 아님)을 관리하는 풍부한 명령입니다. 다음과 같은 것을 사용할 수 있습니다.

$ nmcli connection modify eth0 ipv4.dns 8.8.8.8

resolv.conf이 명령은 파일을 덮어씁니다 . RHCA에서는 resolv.conf를 수동으로 편집하고 해당 명령을 사용하지 않는 것이 좋습니다. 언급한 resolvconf 디렉터리와 관련하여 일부 서비스에는 자체 DNS 구성이 있을 수 있으므로 OpenVpn과 같은 자체 구성을 사용한다고 말할 수 있습니다. /etc/nsswitch구문 분석에 대한 정보는 설명서를 확인할 수도 있습니다 .

관련 정보