resolv.conf가 무언가에 의해 계속 재설정됩니다


29

resolv.conf계속 변경이 되는지 알아내는 데 도움이 필요 합니다. 외부 인터넷과 로컬 네트워크에만 액세스 할 수 없습니다.

$ cat /etc/resolv.conf
nameserver 192.168.16.1
domain localdomain
search localdomain

루프백 인터페이스를 제거 /etc/network/interfaces하고 jontsai의 포스터 블로그 에 eth0 인터페이스를 추가하여 문제를 해결했다고 생각했습니다 .

나는 다음과 같은 일을 시도했다.

$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 up
$ sudo /etc/init.d/networking restart
$ sudo dhclient

그런 다음 일이 일시적으로 작동하고 결국 resolv.conf의 네임 서버가 다시 되돌려집니다.

추신 : 나는 이것을 우분투 포럼에 게시 했습니다 .


편집 :에 쓰는 NetworkManager 외에 다른 프로그램이 적어도 하나 있습니다. NetworkManager를 resolv.conf새로 고칠 때 resolv.conf생성 되는 파일에 주석이 붙어 # Generated by NetworkManager있고 계속 변경되는 버전 이 없기 때문에 이것을 알고 있습니다.

그래서 나는 이것을 시도하고있다 :

while true; do echo listening; lsof | grep /etc/resolv.conf; echo sleeping; sleep 1; done


편집 2 :

파일 출력 추가 :

$ cat /etc/network/interfaces 
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

같은 파일이 없습니다 /etc/NetworkManager/NetworkManager.conf

$ sudo cat /etc/NetworkManager/system-connections/Auto\ Ethernet 

[connection]
id=Auto Ethernet
uuid=#######omitted#######
type=802-3-ethernet
autoconnect=true
timestamp=1314377063

[ipv4]
method=auto
ignore-auto-routes=false
ignore-auto-dns=false
dhcp-send-hostname=false
never-default=false

[802-3-ethernet]
speed=0
duplex=full
auto-negotiate=true
mtu=0

[ipv6]
method=ignore
ignore-auto-routes=false
ignore-auto-dns=false
never-default=false

Network Manager 버그이거나 구성 오류 일 가능성이 높습니다. 어떤 버전의 Ubuntu를 실행하고 있습니까? 당신은이 있는가 resolvconf패키지가 설치되어 있습니까? 의 내용을 게시 /etc/network/interfaces, /etc/NetworkManager/NetworkManager.conf하고 /etc/NetworkManager/system-connections/*.
Gilles 'SO- 악한 중지'

10.04를 실행 중이며 resolvconf패키지가 없습니다 . 어떤 시점에서, 내 로컬 네트워크가 잘 동안 내가 설치를 시도 할 수 있도록 내 DSL 모뎀 (라우터 뒤에) 나쁜 거라고 nscddnsmasq지금 제거 --they're하지만 방해 몇 가지 유물을 떠나 겠는가?
jontsai

3 주 만에 처음으로 컴퓨터를 재부팅했는데 문제가 사라진 것 같습니다. o_O
jontsai

확실하지,하지만 난 DHCP의에 서버에 일부 문제가 생각 vmnet1vmnet8(NAT와 호스트 전용)
jontsai

1
Ubuntu 12.04 이후 기본 시스템에 resolvconf를 도입하여 resolv.conf 처리 방식을 근본적으로 변경 한 이후로이 전체 토론이 관련성이 줄어 듭니다.
jdthood

답변:


13

에 정적 추가를 할 수 있습니다 /etc/resolv.conf. 이러한 추가는 자동으로 추가되는 것을 대체 할 수 있습니다.

먼저 resolvconf패키지를 설치하십시오 .

그런 다음 Alt + F2를 누르고을 실행하십시오 gksudo nautilus. /etc/resolvconf/resolv.conf.d/head파일의 시작 부분에 추가하려면 엽니 다 . /etc/resolvconf/resolv.conf.d/tail끝에 추가하려면 엽니 다 . 변경하고 파일을 저장 / 닫은 다음 실행 sudo resolvconf -u하여 변경 사항을 적용하십시오.

(파일 시작 또는 끝의 설정이 가장 높은 우선 순위인지 기억하지 않습니다.)


VPN에 연결하면 네트워크 관리자 변경 사항이 되돌려집니다. 이것은 내가 연결된 네트워크에 관계없이 리졸버 목록에 8.8.8.8을 유지할 수있게했습니다.
Steven P

8

나는 똑같은 문제가 있었다-서버가 재부팅 될 때마다 resolv.conf가 다시 작성됩니다.

DHCP로 인한 것입니다. resolv.conf를 원하는대로 설정하기 /etc/dhcp/dhclient.conf위해 다음을 편집 하고 추가했습니다.

supersede domain-name "my.domain.com";
prepend domain-search "my.domain.com";

실제로 이것을 변경하여 resolv.conf 파일에 대해 상당히 제어 할 수 있습니다.

도움이 되길 바랍니다.


2
이것은 가장 깨끗한 솔루션이지만 몇 가지 이유로 내 시스템에서 작동을 멈췄습니다. 그 이후로 resolvconf 스크립트 또는 chattr + i /etc/resolv.conf를 사용하지 않도록 설정했습니다.
Tronic

7

(이 답변에는 진행 상황을 조사하는 방법이 포함되어 있습니다. 이러한 방법을 사용하여 추가 정보를 수집하고 제공하면 실제 솔루션을 제공 할 수 있습니다.)

겉보기에 자연스럽게 나타나는 업데이트 /etc/resolv.conf는 DHCP 임대가 갱신 될 때 발생합니다. DHCP 임대 기간을 확인하십시오 (시스템 로그에 나타납니다 /var/log/syslog).

auditd 감사 설치 를 사용 하여 파일을 수정 한 내용을 찾을 수 있습니다 . 데몬 ( sudo service auditd start)을 시작하고 해당 파일의 수정을 감시하도록 지시하십시오.

sudo auditctl -w /etc/resolv.conf -p w

감사 로그는에 /var/log/audit/audit.log있습니다. 파일이 수정 된 시간과 파일을 수정 한 프로그램 이름이 표시됩니다.

당신이있는 경우 resolvconf패키지가 설치, 네트워크 관리자는 발가락에 스테핑 할 수있다. 모든 네트워크 인터페이스를 끄고 Network Manager ( sudo service network-manager stop) 를 중지 한 다음 다시 시작하십시오.


1
나는 당신이 DHCP 릴리스에 대해 맞다고 생각합니다. 다음과 같이 네트워크 관리자에서 DHCP 설정을 변경할 수 있습니다 nm-connection-editor. 터미널에서 실행하십시오 . 인터페이스를 선택하고 편집을 누르십시오. IPv4 설정에는 DHCP 주소 (또는 이와 유사한 것)라는 방법이 있어야합니다. 내가 실수하지 않으면 DHCP를 통해 IP 주소를 얻을 수 있지만 네임 서버는 얻을 수 없습니다 (아래 필드에서 지정할 수 있습니다).
Christian Skjødt

MAC 주소를 고정 IP로 매핑하도록 라우터를 설정 했으므로 DNS 임대는 오랫동안 지속됩니다. auditctl라인은 나를 위해 작동하지 않습니다, 나는 네트워크 관리자입니다에 대한 서비스 이름을 믿고 network-manager(하이픈 포함). 나는하지 않았다 resolvconf패키지가 설치되어 있지만 나는 안에 물건을 가지고 /etc/resolvconf/폴더, 그리고 다른 우분투 머신에 비해 내가 설치 패키지를 제거하고 수동으로 폴더 있음을 제거하므로, 그것은 그것을하지 않았다. /etc/resolv.conf방금 다시 작성되었으므로 auditctl일을하는 것이 큰 도움이 될 것이라고 생각 합니다.
jontsai

@jontsai 패키지 /etc/resolvconf가없고 resolvconf일부 패키지가 후크를 가져와 도 이러한 후크 resolvconf는 설치되어있는 경우에만 사용됩니다 . auditctl문제가 다시 나타날 수 있도록 회선을 수정 했습니다.
Gilles 'SO- 악마 그만'

파일을 편집하고있는 것을 찾기 위해 사용자 감사 아이디어가 마음에 들었지만 파일이 이미 수정 된 후에 시작된 것처럼 보입니다.
Peter Sankauskas

4

터미널을 열고 입력

sudo chattr +i /etc/resolv.conf

+ i는 루트에서도 부팅시 파일이 재설정되지 않도록주의합니다.

위를 취소하려면

sudo chattr -i /etc/resolv.conf

이상

man chattr

이것은 나를 위해 작동하지 않았습니다. 네트워크 관리자를 다시 시작하면 여전히 DHCP 이름 서버로 /etc/resolv.conf를 덮어 씁니다.
Tommy

GCP 내부에서 실행되는 Debian 9 VM에서 나를 위해 일했습니다. 예! 감사!
the0ther


3

에서 resolv.conf호출 disable_make_resolv_conf된 파일을 만들어서 업데이트를 비활성화합니다 ./etc/dhcp3/dhclient-enter-hooks.d

#!/bin/sh
make_resolv_conf(){
}

표준 기능을 resolv.conf새로 고침을 담당하는 동일한 이름으로 바꿉니다 .


1

늦은 시간이지만 위의 모든 내용과 다른 경우로 사례를 게시합니다.

내 경우에는 /etc/resolv.conf에 대한 심볼릭 링크 /var/run/NetworkManager/resolv.conf이며 어떤 이유로 든 해당 cat /etc/resolv.conf파일이나 디렉토리에 오류가 발생하지 않습니다 (비어있을 수 있습니까?)

vi로 열어서 추가 nameserver x.x.x.x하면 작동하지만 재부팅시 지워집니다.

편집 /etc/network/interfaces및 추가 dns-nameservers x.x.x.x, 변경 /etc/dhcp/dhclient.conf및 제거 , 편집을 시도 request domain-name-servers했습니다 prepend domain-name-servers x.x.x.x.

Resolvconf 바이너리가 설치되어 NetworkManager.conf있지 않으며 관련이 없습니다. 그러나 컴퓨터를 다시 시작할 때마다 도메인 서버가 없었습니다.

이유가 무엇인지 확실하지 않지만 GNS3에서 시작한 VBox 시스템이라는 사실과 관련이있는 것 같습니다 .VBox 설정 내부의 인터페이스로 인해 인터페이스를 만들지 않고 그대로 두어야합니다. 기계를 시작할 때 GNS3은 GNS3에서 시작하면 즉시 "UDP 인터페이스"를 생성합니다.

따라서, 끝없이 검색에서 저를 저장, 난 그냥 추가 echo nameserver x.x.x.x> /etc/resolv.conf/etc/profile(도니는 다르게되지 해결하지만, 회피) 문제가 해결. 그러나 누군가가 그 시나리오에 부딪 치면 그 시나리오에서 어떤 일이 일어나는지 아는 것이 흥미로울 수 있습니다.


1

파일이 있다면 /etc/NetworkManager/NetworkManager.conf

cat /etc/NetworkManager/NetworkManager.conf

resolv.conf 재설정을 중지하도록 NetworkManager를 구성 할 수 있습니다.

sudo sh -c 'echo "
[main]
dns=none
" >> /etc/NetworkManager/NetworkManager.conf'
cat /etc/NetworkManager/NetworkManager.conf

이제 수동으로 변경 /etc/resolv.conf하고 영속성을 테스트 하십시오.

sudo systemctl restart NetworkManager
# sudo service network-manager restart
cat /etc/resolv.conf

출처 : https://askubuntu.com/a/623956/452398


dns = none을 추가하면 문제가 올바른 방식으로 해결됩니다.
타이어 :

0

ifcfg-ethX 파일에 다음과 같이 입력하십시오.

DNS1 = 192.168.XX

DNS2 = 192.168.XX

DOMAIN = yourdomain.com

네트워크 관리자는 서비스를 다시 시작하거나 상자를 다시 시작한 후 해당 레코드를 resolv.conf 파일에 게시합니다.


0

누군가가 같은 경우에 빠지는 경우를 대비하여 :

파일 내부의 인터페이스에서 dhcp를 설정하지 않았습니다. /etc/network/interfaces

Networkmanager는 /etc/resolv.conf그가받는 dhcp 답변을 수정 합니다.

hth


0

이 경우 # Generated by NetworkManager/etc/resolv.conf

Network Manager 구성 편집 :

sudo vim /etc/NetworkManager/NetworkManager.conf

[main]섹션 추가 rc-manager=unmanaged:

[main]                                                                                                                                   
rc-manager=unmanaged

왜?

rc-manager-resolv.conf 관리 모드를 설정하십시오. 기본값은 NetworkManager 빌드 옵션에 따라 다르며이 버전의 NetworkManager는 기본값 "symlink"로 빌드되었습니다.

(...)

unmanaged: 만지지 마십시오 /etc/resolv.conf.

자세한 정보는 구성 참조 : https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html

그런 다음 수정하지 /etc/resolv.conf않고 네트워크 관리자를 다시 시작하여 확인하십시오 /etc/resolv.conf.

sudo systemctl restart NetworkManager

또는

sudo service network-manager restart

보다:

cat /etc/resolv.conf

절차가 실패하면 /etc/resolv.conf네트워크 관리자 동안 덮어 쓴 추가하려고 다시 시작 dns=none[main]로 설정 섹션 https://askubuntu.com/a/1150326/364772가 말했다

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