/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
답변
서버를 원격으로 관리하는 사용자는 다음을 수행 할 수 있습니다.
dns-nameservers
라인을 업데이트/etc/network/interfaces
# 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.conf
dns-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-*
.