特定のドメインを確認するためにローカル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つは機能し、もう1つは機能しないので、少し違いがあるようですが、どこにあるのかわかりません。
ホストとドリルがドメインを検証できる場合、カールがドメインを確認できないのはなぜですか?問題をどのように見つけることができますか?
答え1
ラップトップが実行されていたことがわかりましたsystemd-resolved
。私は次の理由で驚きました。
- 中には何もない
nsswitch.conf
- 中には何もない
resolv.conf
dnscrypt-proxy.service
インストールおよび実行中
したがって、DNSを中断することなく2つのリゾルバを並列に実行することは不可能だと思います。彼らは事実であることが判明した。からインスピレーションを受けるhttps://unix.stackexchange.com/a/708899/217968もう一度見てみると、実際にはデスクトップでは無効になり、DNSサーバーでは無効になっていましたが、ラップトップでは有効になっています。問題を修正しました。
systemctl stop systemd-resolved
systemctl disable systemd-resolved
DNSが私のラップトップで動作し始めました。