특정 도메인을 확인하기 위해 로컬 DNS 서버를 사용하도록 내 컴퓨터를 구성하려고 합니다. DNS 서버는 192.168.1.123에 있으며 자체적으로 모든 것을 잘 해결합니다.
다른 컴퓨터에서는 dnscrypt-proxy를 설치하고 /etc/resolv.conf
다음으로 변경했습니다.
nameserver 127.0.0.1
options edns0 single-request-reopen
/etc/resolv.conf
또한 NetworkManager에 의해 재정의되지 않는지 확인했습니다 .
그런 다음 192.168.1.124로 전달되도록 /etc/dnscrypt-proxy/dnscrypt-proxy.toml
편집 했습니다 . 이 IP에서 GIT 서비스를 실행하고 있으며 192.168.1.123의 DNS 서버는 192.168.1.124로 확인되도록 구성되어 있습니다. 아이디어는 내가 열 수 있다는 것입니다 .forwarding_rules
home.arpa
git.home.arpa
git.home.arpa
host git.home.arpa
또는 를 사용하면 drill git.home.arpa
192.168.1.123의 데스크톱, 노트북 및 DNS 서버가 모두 올바른 IP 192.168.1.124를 반환합니다. DNS 서버 로그에서도 쿼리를 볼 수 있습니다.
데스크탑과 DNS 서버에서 이 작업을 수행 하면 curl git.home.arpa
GIT 서비스에 대한 올바른 HTML이 표시됩니다. 그러나 내 노트북에서는 curl: (6) Could not resolve host: git.home.arpa
브라우저에서도 동일한 결과를 얻습니다.
제가 아는 한, 노트북과 데스크탑은 구성이 동일합니다. 다음 파일은 서로 동일합니다.
/etc/resolv.conf
/etc/nsswitch.conf
/etc/dnscrypt-proxy/dnscrypt-proxy.toml
/etc/dnscrypt-proxy/forwarding-rules.txt
랩탑을 다시 시작하고, NetworkManager 서비스를 다시 시작하고, dncrypt-proxy를 다시 시작해 보았습니다. 아마도 하나는 작동하고 다른 하나는 작동하지 않기 때문에 약간의 차이가 있을 것 같은데 어디인지 모르겠습니다.
호스트와 드릴이 도메인을 확인할 수 있다면 컬이 도메인을 확인하지 못하는 이유는 무엇입니까? 문제를 어떻게 찾을 수 있나요?
답변1
노트북이 실행되고 있었던 것으로 나타났습니다 systemd-resolved
. 나는 다음과 같은 이유로 놀랐습니다.
- 안에는 아무것도 없어
nsswitch.conf
- 안에는 아무것도 없어
resolv.conf
dnscrypt-proxy.service
설치 및 실행 중
따라서 DNS를 중단하지 않고 두 개의 확인자가 병렬로 실행되는 것은 불가능하다고 생각합니다. 그들은 사실로 밝혀졌습니다. 에서 영감을 받다https://unix.stackexchange.com/a/708899/217968다시 살펴보니 실제로 데스크톱에서는 비활성화되고 DNS 서버에서는 비활성화되었지만 랩톱에서는 활성화되었습니다. 문제를 수정했습니다.
systemctl stop systemd-resolved
systemctl disable systemd-resolved
DNS가 내 노트북에서 작동하기 시작했습니다.