/ etc / network / interfaces를 변경 한 후 resolvconf를 resolv.conf를 재생성하려면 어떻게합니까? 작동하지 않았다. 나는 또한

/etc/network/interfaces아래와 매우 유사한 것으로 업데이트 한 후 어떻게 /etc/resolv.conf업데이트합니까? 나는 (루트로) 시도 resolver -u, service networking restart하지만 그들은 작동하지 않았다. 나는 또한 심볼릭 링크를 수정하고 다시 resolv.conf시도 resolver -u했다. 마지막으로 좌절감에 나는 다시 부팅하여 문제를 해결했습니다 /etc/resolv.conf.

Ubuntu 12.04, 64 비트 서버, 모든 최신 패치가 설치되었습니다.

/etc/network/interfaces:

iface eth0 inet static
    address 192.168.3.3
    netmask 255.255.255.0
    gateway 192.168.3.1
    dns-search example.com
    dns-nameservers 192.168.3.45 192.168.8.10


답변

service networking restart 항상 모든 인터페이스를 다운받는 안정적인 방법은 아닙니다.

resolvconf -u명령 resolv.conf은 resolvconf의 자체 데이터베이스 에서만 업데이트 됩니다. 데이터베이스를 업데이트해야합니다.

데이터베이스를 업데이트하려면 -a또는 -d옵션을 사용하여 resolvconf를 호출해야합니다 . ifup 또는 ifdown을 실행할 때 뒤에서 발생합니다. 따라서 일반적으로로 /etc/network/interfaces변경하면 dns- * 옵션의 변경 사항을 활성화하려면 해당 인터페이스를 ifdown하고 다시 작성해야합니다. 또는 재부팅 할 수 있습니다.

ifdownup하지 않고 인터페이스를 변경하려는 경우 (아마도 기계를 원격으로 관리하고 해당 인터페이스를 통해 연결되어 있기 때문에 natch) 명령 행에서 resolvconf를 직접 실행하여 동일한 결과를 얻을 수 있습니다. 이것은 resolvconf의 의미에 대해 조금 더 많은 지식이 필요합니다. 관련 / e / n / i 스탠자가 있다고 가정하십시오.

iface IIII FFFF static
    address ...
    ...
    dns-nameservers X.X.X.X Y.Y.Y.Y
    dns-search SSSS

여기서 FFFF는 주소 패밀리 ( “inet”또는 “inet6”)입니다.

이러한 dns- * 옵션을 활성화하려면 다음과 같이 resolvconf를 실행합니다 (예, 문자열의 줄 바꿈이 resolvconf로 파이프 됨).

echo "nameserver X.X.X.X
nameserver Y.Y.Y.Y
search SSSS" | sudo resolvconf -a IIII.FFFF

질문에 주어진 스탠자의 경우 다음과 같습니다.

echo "nameserver 192.168.3.45
nameserver 192.168.8.10
search example.com" | sudo resolvconf -a eth0.inet

자세한 내용은 resolvconf (8) 매뉴얼 페이지와 resolvconf 패키지 README 파일 (/usr/share/doc/resolvconf/README.gz)을 참조하십시오.


답변

맨 페이지는 기본적으로 설치되지 않지만 업데이트 스크립트 옵션을 통해 문서화되어 있으므로 다음을 실행하십시오.

sudo resolvconf -u

답변

서버를 원격으로 관리하는 사용자는 다음을 수행 할 수 있습니다.

  1. dns-nameservers라인을 업데이트/etc/network/interfaces
  2. # ifdown eth01; ifup eth01

이것은 한 줄로 나뉘어 야합니다. (리눅스 명령 줄 구분 기호). 현재 연결이 끊어지지 않아야합니다. 인터페이스 파일에서 오타는 예외입니다. 이 경우 ifup실패하고 물리적 액세스 또는 다른 ethxx연결 이 있어야 합니다.


답변

service resolvconf restart/etc/resolv.conf많은 소란없이 파일을 재생성 합니다.


답변

이 답변은 위의 답변과 비슷하지만 질문 예제 구성을 사용하여 질문에 답변합니다. 또한 두 명령이 모두 필요한 이유를 설명합니다.

편집 /etc/network/interfaces:

iface eth0 inet static
    address 192.168.3.3
    netmask 255.255.255.0
    gateway 192.168.3.1
    dns-search example.com
    dns-nameserver 192.168.3.45
    dns-nameserver 192.168.8.10

구성 파일을 재부팅하거나 다시로드하지 않으면 이러한 변경 사항이 적용되지 않습니다.

인터페이스 파일을 실시간으로 업데이트하려면 다음 명령을 실행해야합니다.

echo "nameserver 192.168.3.45
nameserver 192.168.8.10
search example.com" | sudo resolvconf -a eth0.inet

이를 통해 재부팅하거나 다시로드하지 않고도 인터페이스를 업데이트 할 수 있습니다.

그러나 변경 사항이 없으면 재부팅 후 위의 명령 변경 내용이 손실됩니다 /etc/network/interfaces.

그런데이 목록의 BDenis의 마지막 대답은 실제로 /etc/network/interfaces파일 을 구문 분석하고 해당 줄을 명령으로 파이프 하여 마지막 명령 대신 작동합니다. sudo resolvconf -a eth0 실제로 절반의 답변이며 인라인 sed 구문 분석의 좋은 예입니다. 이것이 어떻게 수행되는지 보려면 명령의 첫 번째 부분을 실행하고 /etc/network/interfaces파일을 구문 분석 하고 sudo resolvconf -a eth0명령 을 실행하는 데 필요한 모든 정보를 뱉어내는 것을 지켜보십시오 .

sed 's/#.*$//' /etc/network/interfaces | grep dns- | sed 's/dns-//g'

이것은 명령과 동일한 출력을 생성합니다.

echo "nameserver 192.168.3.45
nameserver 192.168.8.10
search example.com"

이 제공 /etc/network/interfaces파일이 정보로 구성되어 있습니다 :

iface eth0 inet static
    address 192.168.3.3
    netmask 255.255.255.0
    gateway 192.168.3.1
    dns-search example.com
    dns-nameserver 192.168.3.45
    dns-nameserver 192.168.8.10

답변

간단한 답변 :

resolvconf를 설치하십시오. apt install resolvconf

그런 다음의 행에 따라 ifup eth0의 dns를 업데이트합니다 .etc/resolv.confdns-nameservers/etc/network/interfaces


답변

18.04에서 다음이 안정적으로 작동합니다 (루트로 실행).

systemctl stop networking
ip address flush dev <device> # just to be safe
systemctl start networking

중요 : 패키지가 resolvconf설치되어 있는지 확인하십시오 .
기본적으로 보이지 않는 것 같습니다.이 설정이 없으면 (!)의 일부 변경 사항 /etc/network/interfaces이 자동으로 무시됩니다 (예 🙂 dns-*.