DNS가 systemd의 127.0.0.53으로 설정되었습니다-어떻게 영구적으로 변경합니까?


37

최근에 17.10으로 업그레이드했습니다. 웹 사이트를 탐색하거나 도메인을 핑하려고하면 사이트를 확인할 수 없다는 메시지가 표시되지 않습니다.

network-admin내용 표시 /etc/resolv.conf될을nameserver: 127.0.0.53

8.8.8.8 또는 208.67.222.222로 변경하면 모든 것이 작동합니다. 재부팅 할 때까지

재부팅 또는 재개시 네임 서버는 127.0.0.53으로 재설정됩니다.

네임 서버를 어떻게 작동하는 것으로 영구적으로 설정합니까?


systemd 팬을 위해, 내가 실행하는 경우 systemd-resolve --statusI을 GET

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

이 질문에 대한 조언을 따르면 재부팅 후 DNS가 계속 재설정됩니다. 우분투 17.10 -DNS가 여전히 해결되지 않습니다.


systemctl stop systemd-resolvedsystemctl mask systemd-resolved트릭 : 어떻게해야
Shayan

답변:


28

resolvconf 패키지를 설치하면 /etc/resolv.conf시스템 부팅시 빌드 방식 이 수정됩니다 .

sudo apt install resolvconf

그런 다음 파일을 작성하거나 수정할 수 있습니다 /etc/resolvconf/resolv.conf.d/tail. 이 파일에 line을 넣으면 부팅 nameserver 8.8.8.8이 끝날 때이 행이 추가됩니다 /run/resolvconf/resolv.conf. /etc/resolv.conf이제이 파일에 대한 심볼릭 링크가됩니다.


4
이 작동합니다-감사합니다! 127.0.0.53을 스스로 작동시킬 수있는 방법이 있는지 알고 있습니까?
Terence Eden

1
나는이 문제에 상당히 익숙하다. 지난 몇 주 동안 VPN을 켜고 끌 때 dns 문제를 제거하려고했습니다. 시도해 볼 수 sudo dpkg-reconfigure resolvconf있습니다. 나는 이것을 최근에 시도하고 꼬리 파일을 지우고 처음에는 이것이 작동하는 것처럼 보입니다.
oscar1919

@TerenceEden 127.0.0.53을 자체적으로 작동 시키려면 내 대답을 살펴보십시오. askubuntu.com/a/1083843/281191
intelfx

9

올바른 해결책은 대신 단두대로 편두통을 치료하기 위해 노력하는 systemd-해결 해결하는 것입니다.

제대로 사용하면 정말 좋은 도구입니다.

당신의 systemd-resolve --status출력으로 판단 ...

Link 3 (wlo1)
      Current Scopes: LLMNR/IPv4 LLMNR/IPv6
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

... 네트워크 관리자 도구는 인터페이스 별 DNS 구성을 systemd-resolved로 전달하지 않습니다.

예를 들어 최신 버전의 NetworkManager /etc/resolv.conf/run/systemd/resolve또는 내부를 가리키는 심볼릭 링크 인 경우 자동으로이를 수행 합니다 /usr/lib/systemd/resolv.conf. 또는 최신 버전의 systemd-resolved는 systemd-resolved와 통신하는 resolvconf이진 파일을 설치하여 기록 resolvconf 인터페이스와 호환되도록 시도합니다 .

이 두 가지 솔루션 중 하나를 사용하는 것이 좋지만 빠르고 더러운 솔루션을 찾고 있다면 DNS 서버를 전 세계적으로 사용하도록 systemd-resolved를 구성하면됩니다.

$ cat /etc/systemd/resolved.conf
<...>
[Resolve]
DNS=8.8.8.8 8.8.4.4
<...>

그런 다음 다시 시작 systemd-resolved.service하거나 재부팅하십시오.


적어도 나 에게이 답변은 작동하지 않습니다. 우분투 18.04를 사용하여 "DNS"항목을 변경 한 후 127.0.0.53
André M. Faria

1
@ AndréM.Faria는 해결 방법을 배웁니다. 127.0.0.53로컬 캐싱 스텁 분석기의 주소입니다. 업스트림 DNS 서버로 지정한 DNS 요청을 전달합니다.
intelfx

때때로 당신은 무언가를 알고 그것을 무시합니다. 네, 그렇습니다.
André M. Faria

1
여기서도 기본적으로 systemd-resolvedDNS 응답을 캐시 한다는 점에 유의하십시오 . 때때로 유용 할 수 있지만 상황에 따라 문제가 발생할 수 있습니다. cache=yes응답에서 구성 파일 의 행을 주석 해제 하고로 설정하십시오 no.
Quentin Skousen

무슨 일이 실제로 발생 /etc/resolve.conf(또는 정말 /run/resolvconf/resolv.conf, 전 포인트는) 업데이트 할 수 있나요? 재부팅을 요구하지 않고 테스트에 대해 알아두면 좋을 것입니다. 모든 나는 다시 시작입니다 말할 수있는 systemd-resolved.service트릭을 할 것 같지 않았다
bbarker을

8

systemd패러다임 내에서 작업 하면 링크 / 장치에 DNS 추가

우분투 17.10 이상을 사용하여 *.network파일 추가 :

sudo nano /lib/systemd/network/100-somecustom.network:

100-somecustom.network (100은 우선 순위를 위해 임의의 숫자 일 수 있으며 .network파일 확장자 가 필요합니다 ) :

[Match]
Name=wlo1 # the device name here

[Network] # add multiple DNS 
DNS=8.8.8.8
DNS=208.67.222.222

그런 다음 다시 시작하십시오.

sudo service systemd-networkd restart

또한 살펴보십시오 :

netplan apply

그런 다음 확인하십시오.

systemd-resolve --status wlo1

정보 페이지에서 info systemd.network:

뿐만 아니라 /etc/systemd/network, 드롭 인 (drop-in) ".D" 디렉토리가 될 수있다 / lib 디렉토리 / systemd / 네트워크 또는 / 실행 / systemd / 네트워크에 배치 디렉토리. / etc의 드롭 인 파일은 / run의 파일보다 우선하며, / lib의 파일보다 우선합니다. 이 디렉토리 중 하나에있는 드롭 인 파일은 기본 netdev 파일보다 우선합니다. (물론 / run은 일시적이고 / usr / lib는 공급 업체를위한 것이므로, 어느 곳에서나 드롭 인을 사용하지 않을 것입니다.)

또 다른 접근법 DNSStubListenerdnsmasq다음 과 함께 사용을 비활성화합니다 .

sudo nano /etc/systemd/resolved.conf:

#
DNSStubListener=false

관련 :


이상하게도 DNSStubListener = false라고 말했지만 실제로 주석이 달린 구성은 DNSStubListener = yes이며 일반적으로 "yes"값의 역은 "no"이며 "false"가 아닌 경우 "false"가 아닙니다. 참된".
André M. Faria

확장자가 .network 인 파일을 만드는 답이 효과가 없었습니다.
André M. Faria

7

나는 Lubuntu & Kubuntu 18.04를 사용합니다. DNS 문제를 2 단계로 극복 할 수있었습니다.

첫 번째 단계 : 설치 unbound및 교체하도록 설정 systemd-resolved으로 그레 구 아르 C의여기 .

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl enable unbound-resolvconf
sudo systemctl enable unbound

재부팅

파일을 루트로여십시오 /etc/NetworkManager/NetworkManager.conf

( sudo leafpad /etc/NetworkManager/NetworkManager.conf루 분투 18.04 또는 쿠분투 18.04에서 SUDO_EDITOR=kate sudoedit /etc/NetworkManager/NetworkManager.conf)

아래 [main]에이 줄을 넣으십시오.

dns=unbound

다시 재부팅

두 번째 단계 : 재부팅 한 후에도 문제가 여전히 해결되지 않으면 내 경우와 같이 파일 관리자를 루트로 시작하고으로 이동하여 /etc삭제 resolv.conf하고 새로 만드십시오 resolv.conf. 비워두고 OS를 재부팅하십시오. 이 경우 재부팅하면 문제가 사라졌습니다.

Kubuntu 18.04에서는 루트로 Dolphin을 시작할 수 없으므로 먼저 /etc터미널에서 터미널을 열고 연 다음 Entersudo su눌러 루트로 사용 하고 명령으로 삭제 하십시오 . 그런 다음 바탕 화면에 빈 파일을 새로 만들어 이름을 지정한 다음 터미널을 열 수 있습니다. 사용 터미널의 루트 모드로 전환 명령을 한 다음 새 복사 에 바탕 화면에서 명령으로 .resolv.confrm resolv.confresolv.confsudo suresolv.conf/etccp resolv.conf /etc

나는 설치하기 전에 두 번째 단계 를 시도하지 않았다는 것을 덧붙여 야 한다 unbound. 그래서 다음에 그렇게 할 때, 그것이 충분한 지 아닌지를 알기 위해.


왜 루트로 편집하고 내용을 삭제하지 않습니까?
Ballie

@ 발리 처음에 이것을 시도했지만 도움이되지 않았습니다. 또한 원본 resolv.conf/etc일종의 지름길로 표시되어 정상이 아닙니다. 그렇기 때문에 빈 파일을 새로 만들고 이름을 지정하여 파일을 삭제하고 다시 작성하기로 결정했습니다 resolv.conf. 그리고 효과가있었습니다. 이러한 이유로 나는 다음에 OS를 다시 설치해야 할 때 "첫 단계"를 수행하지 않고 먼저 이것을 시도 할 것입니다-그것이 충분한 지 확인하십시오. 그러나 원본 resolv.conf/etc제거하고 다시 만들어야합니다. 이것에 대해서는 확실합니다.
Калоян Грънчаров

방금 systemd-resolved.service를 비활성화하고 resolv.conf의 링크를 제거하고 수동으로 링크를 만들었습니다.
André M. Faria

2

이것이 인터페이스 구성에서 내 dns 레코드를 변경하는 방법입니다.

$ vi /etc/netplan/50-cloud-init.yaml

이름 서버 주소를 변경하십시오. 이전은 .4 였고 .3으로 변경했습니다.

...
            nameservers:
                addresses:
                - 192.168.1.3
...

구성을 저장 한 후 구성을 적용하십시오.

$ sudo netplan apply

그런 다음 resolvectl 서비스를 다시 시작하십시오.

$ sudo systemctl restart systemd-resolved.service

참고 사항 : 서버를 재부팅하고 변경 사항을 그대로 유지했습니다. 내가 사용하는 resolvctl dnsDNS 레코드를 확인하는 명령을 사용합니다.


이것은 실제로 정답입니다. 나는 그것이 받아 들여지지 않은 것에 놀랐다.
Toumal

0

NordVPN에 문제가 있었으므로 이에 추가하기로 결정했습니다.

결과 :
NordVPN은 /run/systemd/resolve/resolv.conf연결할 때 DNS 설정을 지정합니다.
NordVPN은 /run/systemd/resolve/resolv.conf연결을 끊을 때 모든 DNS 설정을 제거합니다 .
이렇게 설정하면 DNS 서버가 더 이상 작동하지 않습니다.

시스템을 다시 부팅하여 다시 설정해야합니다. 서비스의 표준 재시작 ( sudo systemctl restart systemd-resolved.service)이 작동하지 않습니다.

이 문제를 해결하는 솔루션 :

sudo apt install resolvconf

/etc/resolvconf/resolv.conf.d/로 이동하십시오.

cd /etc/resolvconf/resolv.conf.d/
sudo nano tail

네임 서버 추가

nameserver 1.1.1.1
nameserver 1.0.0.1

설정 될 수있는 네임 서버에 대한 다음 위치를 확인하십시오.

/run/resolvconf/interface/original.resolvconf
/run/resolvconf/interface/systemd-resolved
/etc/resolvconf/resolv.conf.d/tail
/etc/resolvconf/resolv.conf.d/head
/etc/systemd/resolved.conf
/run/systemd/resolve/resolv.conf
/run/systemd/resolve/stub-resolv.conf

사용중인 DNS 서버를 테스트하십시오.

nslookup google.com

Server:         1.1.1.1
Address:        1.1.1.1#53

0

어쩌면 조금 늦었지만이 문제가 발생했습니다. 내장 네트워크 관리자가 아닌 cli를 통해 네트워크 설정을 수동으로 구성했음을 인정해야합니다. 우분투 18.04를 실행합니다.

따라서 systemd.resolved.service를 비활성화했다가 다시 활성화 한 후 DNS 구성을 임의로 상실하는이 불규칙한 동작이 해결되었습니다.

systemctl disable systemd.resolved.service
reboot

재부팅 후 :

systemctl enable systemd.resolved.service
reboot

나는 비교적 신선한 Linux 사용자이므로 이것이 왜 효과가 있었는지에 대한 이유와 이유를 설명 할 수있는 사람이 있어야하지만 다른 사람들을 도울 수 있다면 언급 할 가치가있는 것처럼 보였습니다.


실망하기 위해 노력하지만 실제로 문제를 해결 한 것 사이에 무언가가 있어야합니다. 여기에서 제안하는 작업은 시스템을 그대로 둘 수 있습니다.
tishma

-1

dhcp 이름을 사용할 때 우분투에서 예상대로 작동합니다. 당신이 정적으로 가고 싶을 때 문제가 시작됩니다. cat /etc/resolv.confyor dns는 127.0.0.53이며 /etc/netplan/.yaml파일에 있는 것이 아닙니다 . 이 문제를 해결하려면 /etc/resolve.conf링크 를 제거 하고을 가리키는 새 링크를 만들어야합니다./run/resolve/resolve.conf


답변을 수정하고 형식을 수정하십시오 ...
Yufenyuy Veyeh Dider

-2

이것은 약간의 장난이 필요했습니다. 설정을 업데이트 한 후 재부팅했습니다. 용도:

ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

/etc/systemd/resolved.conf
DNS=8.8.8.8
Cache=no

System resolved failed
systemctl stop systemd-resolved
systemctl disable systemd-resolved

에 대한 "요청"을 주석 처리 할 때

# domain-name, domain-name-servers, domain-search, host-name,

이 줄을 다음에 추가하십시오 /etc/dhcp/dhclient.conf.

 supersede domain-name "cwillenterprise.com";

구성 파일을 편집하고 항목을 추가하십시오. 추가는 대체되지 않습니다.

에 항목 추가 /etc/resolvconf/resolv.conf.d/tail

nameserver 8.8.8.8
search "cwillenterprise.com"

변경 사항을 구현하기 위해 실행

resolvconf -u

1
우분투에 오신 것을 환영합니다 ! 제발 편집 사용에 대한 답 서식 코드 파일이나 터미널에 입력해야하는 코드를. #코드에 "주석"을 붙이지 마십시오 . Markdown의 헤더 를 의미 합니다. 게시물을 보내기 전에 항상 미리보기를 확인하십시오.
Melebius
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.