우분투에서 systemd-resolved를 비활성화하는 방법은 무엇입니까?


87

Ubuntu 17.04에서 systemd-resolved를 비활성화하려면 어떻게해야합니까?

와 함께 비활성화하면 systemctl disable작동하지 않는 것 같습니다 (Networkmanager가 서비스를 다시 시작한 것 같습니다).


10
systemd-resolved는 크지 않고 dns 서버가 클라이언트 구성에 지정된 순서대로 항상 해결하려고 시도하지 않아 dns 확인이 작동하는 방식을 위반합니다. 서버가 도메인을 확인하지 않으면 목록의 다음 항목이 맨 위로 이동합니다 ( '메모리'라는 Poettering 호출). 자세한 내용은 이 스레드 를 참조 하십시오.
LifeBoy

7
또한 iptables 규칙을 우회합니다. 이는 끔찍한 아이디어입니다.
Spongman

답변:


150

이 방법은 Ubuntu 릴리스 17.04 (Zesty), 17.10 (Artful), 18.04 (Bionic), 18.10 (Cosmic) 및 19.04 (Disco)에서 작동합니다.

systemd-resolved 서비스를 비활성화하고 중지하십시오.

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved

그런 다음 [main]섹션에 다음 줄을 넣으 십시오 /etc/NetworkManager/NetworkManager.conf.

dns=default

심볼릭 링크 삭제 /etc/resolv.conf

rm /etc/resolv.conf

NetworkManager를 다시 시작하십시오.

sudo systemctl restart NetworkManager

또한 systemd-resolvd를 비활성화하면 일부 사용자의 VPN에서 이름 확인이 중단 될 수 있습니다. 런치 패드 (Thanks, Vincent) 에서이 버그를 참조하십시오 .


4
이것은 우분투 17.04에서 작동하지 않는 것 같습니다. 또한 구성 파일은 /etc/NetworkManager/NetworkManager.conf입니다. 위의 작업을 수행하면 이름 확인이 중단됩니다. systemd-resolved는 시간이 많이 걸리므로 이제 VPN DNS 확인이 제대로 작동하지 않습니다. 버그 진행 상황은 여기에서 찾을 수 있습니다 : bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317
Vincent Gerris

5
systemd-resolved가 비활성화되면 "apt-get install dnsmasq"를 수행해야한다는 위의 답변에 추가해야한다고 생각합니다.
LifeBoy

5
@ LifeBoy dnsmasq를 사용하지 않습니다. 나는 로컬 네임 서버를 사용하지 않고 그 가치를 보지 못합니다.
Bastian Voigt

9
Ubuntu 18.04의 경우 sudo systemctl disable systemd-resolved.service 및 sudo service systemd-resolved stop 명령을 실행하기 만하면됩니다. 그것은 나를 위해 일했다.
Daniel Eagle

12
감사합니다. SystemD는 Linux를 망쳐 놓고, 신뢰할 수 있고 이해하기 쉬운 것에서 마법을 통해 작동하는 것으로 만듭니다.
Forbesmyester

18

최근에 (k) 우분투 17.04로 업그레이드했으며 systemd 변경으로 인해 우연히 발견되었습니다.

내 설정은 광대역 허브에 DNS 공급자가 있고 이것이 네트워크의 모든 장치에 대한 주요 정보 소스라는 점에서 상당히 일반적입니다.

체계적으로는 아름다움이 있지만 모두 나쁘지는 않지만 실제로 나쁜 점은 문서, 우분투 팀의 의사 소통 부족 및 궁호는 "모든 사람을 위해 부서 지더라도 그것을 바꾸자"라는 정신입니다.

머리카락을 찢어 버린 후 해결책은 /etc/systemd/resolved.conf를 편집하는 것이 었습니다.

[Resolve]
DNS=192.168.1.254   # <-- change to your router address
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
Domains=lan         # <-- change to your localdomain name (maybe .local)
#LLMNR=yes  <-- I dabbled with this for a while but it doesn't matter
#DNSSEC=no
#Cache=yes
#DNSStubListener=udp

왜 이것이 작동하지 않는지 이해하지 못한 후 /etc/resolv.conf를 systemd에서 제공하는 것으로 전환하는 것도 필요하다는 것을 알았습니다. 기본 제공 설치의 경우에는 그렇지 않습니다 (나에게 알려지지 않은 이유로).

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

로컬 DNS 서버가 사용되지 않고 모든 DNS 요청이 내 허브로 전송됩니다.

systemd-resolv가 이제 기본으로 제공되기 때문에 이것이 다른 솔루션을 잘라내어 넣는 것보다 훨씬 나은 솔루션이라고 생각합니다.

btw와 관련된 문제는 /etc/nsswitch.conf가 제거 된 것입니다.

읽어야합니다.

호스트 : 파일 mdns4_minimal dns [NOTFOUND = return] resolve [! UNAVAIL = return] dns

[NOTFOUND = return]은 처리가 종료됨을 의미하므로 혼동되는 구성입니다. 그 이후의 항목은 사용되지 않습니다.


1
그런 다음 새 WIFI에 연결할 때마다 구성에서 라우터 주소를 변경해야합니까? 진심이야? -1
Bastian Voigt

나는 당신이 로밍하고 있다는 것을 몰랐다. 그렇다면 구성 항목을 주석 처리 된 상태로 두십시오. 그러면 다음과 같은 /etc/resolv.conf가 표시됩니다 : nameserver 8.8.8.8 nameserver 8.8.4.4
user2427436

1
netplan을 올바르게 설정하면 resolved.conf를 편집 할 필요가 없다고 생각합니다. 즉, netplan은 올바른 값을 심볼릭 링크 된 파일에 씁니다. PS SYSTEMD SUCKS!
g33kz0r

3

VPN에 누출 문제가 있고 (나 같은) systemd를 설정하는 방법을 알 수 없다면 첫 번째 답변에서 설명한 방식으로 VPN을 제거 할 수 있지만 dns=default네임 서버를 활성화 할 것이므로 줄을 추가하지 마십시오 127.0 .0.1. 라우터를 dns로 설정하려면 /etc/resolvconf/resolv.conf.d/ 폴더 에 "꼬리"파일을 만들어 줄을 추가하십시오.nameserser 192.168.1.1

ln -sf /var/run/resolved/resolv.conf /etc/resolv.conf이 파일로 엉망 더라면.


1
정말? 나를 위해 그것은 내 대답에 설명 된대로 정확하게 작동합니다. 확실히 네임 서버 127.0.0.1을 사용하지 않습니다. 또한 구성 파일에 네임 서버의 IP를 하드 코딩하는 것이 매우 편리하지 않다고 생각합니다. 적어도 나는 와이파이 네트워크를 자주 바꾸고 각 와이파 이는 다른 네임 서버를 가지고있다
Bastian Voigt

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