Ubuntu 20.04でdnsmasqを試しましたが、ポート53でsystemd-resolvedとポートの競合が発生しました。だから私は解決策についていくつかの提案を見つけましたが、古いか私の場合には適用されないようです。
systemd-resolvedを無効にすると、タイムアウトを待つように見えるため、すべてが遅くなります。
sudo: unable to resolve host ubuntu: Temporary failure in name resolution
したがって、デフォルトでは、私が入力するすべてのコマンドは約20秒かかります。
dns=default
次のような
/etc/NetworkManager/NetworkManager.conf
ものを入れるには提案のようなものが必要だと思います。https://askubuntu.com/a/907249。ただし、そのファイルは存在せず、もはやパッケージの一部ではありません。
$ dpkg -S /etc/NetworkManager/NetworkManager.conf
dpkg-query: no path found matching pattern /etc/NetworkManager/NetworkManager.conf
だからここに20以上のコメントを追加するのではなく、20.04タイトルの質問で投稿しています...
systemd-resolveを無効にすると、Iできるdnsmasqを起動しましたが、「名前解決が一時的に失敗しました」エラーのため、すべてがまだ遅くなります。 dnsmasqの状態を見ると問題があるようです。
ubuntu@ubuntu:~$ sudo systemctl status dnsmasq.service
sudo: unable to resolve host ubuntu: Temporary failure in name resolution
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-10-22 11:20:35 UTC; 1min 8s ago
Process: 36231 ExecStartPre=/usr/sbin/dnsmasq --test (code=exited, status=0/SUCCESS)
Process: 36232 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=0/SUCCESS)
Process: 36241 ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf (code=exited, status=0/S>
Main PID: 36240 (dnsmasq)
Tasks: 1 (limit: 9024)
CGroup: /system.slice/dnsmasq.service
└─36240 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg->
Oct 22 11:20:35 ubuntu dnsmasq[36240]: using nameserver 127.0.0.53#53
Oct 22 11:20:35 ubuntu dnsmasq[36240]: read /etc/hosts - 7 addresses
Oct 22 11:20:35 ubuntu systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Oct 22 11:20:37 ubuntu dnsmasq[36240]: Maximum number of concurrent DNS queries reached (max: 150)
Oct 22 11:20:48 ubuntu dnsmasq[36240]: Maximum number of concurrent DNS queries reached (max: 150)
Oct 22 11:20:57 ubuntu dnsmasq[36240]: Maximum number of concurrent DNS queries reached (max: 150)
Oct 22 11:21:07 ubuntu dnsmasq[36240]: Maximum number of concurrent DNS queries reached (max: 150)
Oct 22 11:21:17 ubuntu dnsmasq[36240]: Maximum number of concurrent DNS queries reached (max: 150)
Oct 22 11:21:27 ubuntu dnsmasq[36240]: Maximum number of concurrent DNS queries reached (max: 150)
Oct 22 11:21:37 ubuntu dnsmasq[36240]: Maximum number of concurrent DNS queries reached (max: 150)
上記のログによると、dnsmasqは現在実行されていません127.0.0.53:53?
systemd-resolvedで実行すると、次のようになります。
$ sudo ss -lp "sport = :domain"
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
udp UNCONN 0 0 127.0.0.53%lo:domain 0.0.0.0:* users:(("systemd-resolve",pid=36111,fd=12))
tcp LISTEN 0 4096 127.0.0.53%lo:domain 0.0.0.0:* users:(("systemd-resolve",pid=36111,fd=13))
systemd-resolvedを無効にしてdnsmasqを実行した後、次のようになりました。
sudo ss -lp "sport = :domain"
sudo: unable to resolve host ubuntu: Temporary failure in name resolution
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
udp UNCONN 18432 0 0.0.0.0:domain 0.0.0.0:* users:(("dnsmasq",pid=36240,fd=4))
udp UNCONN 0 0 [::]:domain [::]:* users:(("dnsmasq",pid=36240,fd=6))
tcp LISTEN 0 32 0.0.0.0:domain 0.0.0.0:* users:(("dnsmasq",pid=36240,fd=5))
tcp LISTEN 0 32 [::]:domain [::]:* users:(("dnsmasq",pid=36240,fd=7))
私は持っています:
$ cat /etc/resolv.conf | grep nameserver
nameserver 127.0.0.53
ベストアンサー1
デフォルトでは、systemd-resolved
「DNS / DNSSECスタブリゾルバー認証」は「IPアドレス127.0.0.53」、ポート53で提供されます。以下で確認できます。
$ sudo netstat -tulpn | grep LISTEN
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 787/systemd-resolve
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 787/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 923/sshd: /usr/sbin
tcp6 0 0 :::5355 :::* LISTEN 787/systemd-resolve
tcp6 0 0 :::22 :::* LISTEN 923/sshd: /usr/sbin
ポート53は指摘したようにDNSトラフィックのデフォルトポートであるため、ここで競合が発生します。
systemd-resolved
さまざまな方法で動作するように設定したり、スタブパーサを完全に無効にしたりすることもできます。
/etc/systemd/resolved.conf.d
構成を複数のファイルに分割できる便利なディレクトリの1つです。一部のディストリビューションでは、このディレクトリがまだ存在しない場合があります。
[ -d /etc/systemd/resolved.conf.d ] || mkdir -p /etc/systemd/resolved.conf.d
/etc/systemd/resolved.conf.d/10-make-dns-work.conf
次に、デフォルト設定を上書きするファイルを作成します/etc/systemd/resolved.conf
。
printf "%s\n%s\n" '[Resolve]' 'DNSStubListener=no' | sudo tee /etc/systemd/resolved.conf.d/10-make-dns-work.conf
今私達は:
$ cat /etc/systemd/resolved.conf.d/10-make-dns-work.conf
[Resolve]
DNSStubListener=no
設定を変更したら、再起動する必要がありますsystemd-resolved
。
$ sudo systemctl restart systemd-resolved
今どこでsystemd-resolved
聞くか見てください。
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2494/sshd
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 8033/systemd-resolv
tcp6 0 0 :::22 :::* LISTEN 2494/sshd
tcp6 0 0 :::5355 :::* LISTEN 8033/systemd-resolv
dnsmasq
これでポート53でリッスンできます。
これらの変更を元に戻すには、追加したプロファイルを削除します。
sudo rm /etc/systemd/resolved.conf.d/10-make-dns-work.conf
sudo systemctl restart systemd-resolved