Domain-Name-System
使用 bind9 時 systemd-resolve 無法解析主機名
我正在執行 Ubuntu 20.04。我
bind9
在我想用作 dns-server 的 docker-container 中進行設置。容器執行良好,如果使用dig
.
dig
在主機上執行(而不是從容器內部):dig @localhost google.com +short 142.250.185.78
bind9 也正確解析了我自己的區域(範例):
dig @localhost myexample.com +short 213.133.98.98
我面臨的問題是
systemd-resolve
無法bind9
用作其 dns:ping google.com ping: google.com: Temporary failure in name resolution
我配置
/etc/systemd/resolved.conf
為使用 localhost 作為 DNS,我不得不禁用 DNSStubListener,因為它會阻塞埠 53:[Resolve] DNS=127.0.0.1 DNSStubListener=no
我還設置
/etc/netplan/00-config.yaml
使用 localhost 作為名稱伺服器:network: nameservers: addresses: - 127.0.0.1
執行
systemd-resolve --status
給出以下輸出,表明 localhost 正在用作 DNS:Global LLMNR setting: no MulticastDNS setting: no DNSOverTLS setting: no DNSSEC setting: no DNSSEC supported: no DNS Servers: 127.0.0.1 Link 2 (enp1s0) Current Scopes: DNS DefaultRoute setting: yes LLMNR setting: yes MulticastDNS setting: no DNSOverTLS setting: no DNSSEC setting: no DNSSEC supported: no DNS Servers: 127.0.0.1
那麼為什麼我不能解析主機名,例如使用
ping
?bind9 dns 正在按預期工作,如果直接通過dig @localhost
. 還systemd-resolve
配置為通過 localhost 解析但失敗。
我通過擺脫
systemd-resolved
:systemctl disable systemd-resolved.service systemctl stop systemd-resolved