我的 NetworkManager 连接到互联网,但由于 DNS 配置错误,我无法访问互联网。我对 DNS 设置没有太多经验,但问题似乎是由 systemd 解决的。我可以直接 ping IP 地址(例如 8.8.8.8)并正常获得响应,但使用下面的默认配置时无法解析域。我尝试了指向 systemd-resolved 文档中列出的三种配置模式的符号链接,但它们都不起作用。
无法使用以下命令解析任何域,但我可以 ping IP(尝试了很多,它们都有效),没有任何问题。
# /etc/resolv.conf
nameserver 127.0.0.53
options edns0 trust-ad
Run Code Online (Sandbox Code Playgroud)
使用 dig 或 host 时我也会遇到超时错误。
; <<>> DiG 9.16.1-Ubuntu <<>> www.ubuntu.com
;; global options: +cmd
;; connection timed out; no servers could be reached
Run Code Online (Sandbox Code Playgroud)
我可以通过将 resolv.conf 名称服务器更改为 8.8.8.8 来获得域解析并连接到互联网,但解析需要很长时间,即使网络速度测试报告超过 100 mbps 和 ping,网页也需要 >1 分钟才能加载在同一台机器上 <30 毫秒。
下面的配置可以工作,但响应时间非常慢
# /etc/resolv.conf
nameserver 8.8.8.8
options edns0 trust-ad
Run Code Online (Sandbox Code Playgroud)
就像我说的,我是这些系统的新手,我正在努力解决问题。以下是我认为可能有用的所有内容。以下所有输出均使用名称服务器 127.0.0.53
Ubuntu 20.04.3 LTS
systemd-resolve --status 的输出
Global …Run Code Online (Sandbox Code Playgroud) 我试图通过systemd-resolved. 我改变/etc/systemd/resolved.conf如下:
[Resolve]
DNS=1.1.1.1
#FallbackDNS=
Domains=~.
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
DNSOverTLS=opportunistic
#Cache=yes
#DNSStubListener=yes
Run Code Online (Sandbox Code Playgroud)
在监视网络(使用 tcpdump)以查看结果行为是否符合预期时,似乎与目标服务器建立了 TLS 会话;但是,然后服务器关闭连接。我在 1.1.1.1、8.8.8.8 和其他版本中得到了相同的结果。
有想法该怎么解决这个吗?
PS:systemd-resolved最终与传统 DNS 进行并行解析(尽管上面设置了“域”)。但我对这篇文章的主要问题是 TLS 可能出了什么问题。
如何在 中禁用 LLMNR systemd-resolved?
我尝试添加:LLMNR=no到/etc/systemd/resolved.conf
但是当我输入时systemd-resolve --status它仍然显示
LLMNR 设置:是
我试过重新启动计算机并重新启动 systemd-resolved.service
最近,我的系统日志充斥着这些消息:
localhost systemd-resolved[1632]: Using degraded feature set (TCP) for DNS server 127.0.1.1.
Run Code Online (Sandbox Code Playgroud)
我在 Ubuntu 17.04 上。resolv.conf是自动配置的,即我没有弄乱它。
问题:如何阻止我的系统日志泛滥?它增长到几 GB,填满了我的根分区。
我知道这会systemd-resolve --status列出我所有的连接及其 DNS 服务器,nmcli connection show <connection> | grep -i dns并将列出 DNS 连接的优先级。但是我可以运行一个命令来列出所有 DNS 服务器及其优先级/顺序吗?
我正在尝试配置dnsmasq为与 一起工作NetworkManager,问题是当我尝试运行它失败的服务时:
dnsmasq: failed to create listening socket for port 53: Address already in use
Run Code Online (Sandbox Code Playgroud)
但是没有任何东西在听127.0.0.1:53:
sudo ss -alpn sport = 53 src 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
上面的命令没有输出!
这是我的/etc/dnsmasq.conf样子:
$ grep '^[^#]' /etc/dnsmasq.conf
Run Code Online (Sandbox Code Playgroud)
no-resolv
server=8.8.8.8#53
listen-address=127.0.0.1
cache-size=50
Run Code Online (Sandbox Code Playgroud)
如果我bind-interfaces在/etc/dnsmasq.conf.
为什么要启用此功能?评论指出:
大约唯一需要它的时候是在同一台机器上运行另一个名称服务器。
所以我认为这个问题可能来自systemd-resolved.service并且肯定是这样。停止后:
sudo systemctl stop systemd-resolved.service
Run Code Online (Sandbox Code Playgroud)
现在dnsmasq在没有bind-interfaces启用选项的情况下工作正常。
我正在运行 Ubuntu 18.04.1。
使用安装debootstrap,我的默认渲染器NetworkManager工作正常。
我的问题是:
bind-interfaces?systemd-resolved服务可以吗?如果是我应该如何dnsmasq控制/etc/resolv.conf? …使用sudo systemd-resolve --statistics我可以看到当前的DNS缓存统计信息,例如:
Cache
Current Cache Size: 68
Cache Hits: 412
Cache Misses: 461
Run Code Online (Sandbox Code Playgroud)
我想查看 DNS 缓存的所有条目(此处为 68),可以吗?
我在 Windows AD 环境中运行了一些 ubuntu 18.04 服务器。服务器通过 DHCP 获取 IP 没有问题,但选项 6 中指定的 DNS 设置不会写入任何文件。
最初,我只是更新了 /etc/resolv.conf,但是在重新启动后这个配置不会成立。标准 18.04 映像使用 NetPlan,因此我们在此不关心 NetworkManager。在将其追溯到 systemd-resolved 并且必须在 /etc/systemd/resolved.conf 中硬设置名称服务器之后,事情似乎正在起作用。
我的问题只是如何用 systemd-resolved 纠正 dhcpcd option-6?我不想在创建每个服务器时硬设置这些变量。
此外,dnsmasq 在这里似乎不是问题,只要 /etc/systemd/resolved.conf 具有 DNS 设置,它就会缓存得很好,因为 /etc/resolv.conf 仍然指向 127.0.0.1。
在 Ubuntu 升级到 20.04 之后,/etc/resolv.conf包含:
nameserver 127.0.2.1
Run Code Online (Sandbox Code Playgroud)
它不起作用。改为:
nameserver 127.0.0.53
Run Code Online (Sandbox Code Playgroud)
但是每次重新启动后它都会被覆盖,我必须重新更改它。
我已经在这个盒子里安装了 Ubuntu 15.10,定期升级它,这是解析器第一次出现这样的错误。淘气!
如何永久解决这个问题?
编辑:
的输出$ ls -al /etc/resolv.conf:
lrwxrwxrwx 1 root root 29 lis 1 2015 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
Run Code Online (Sandbox Code Playgroud)
内容/etc/resolv.conf:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual …Run Code Online (Sandbox Code Playgroud) 我最近从 16.04 升级到 17.10,现在有些域名在systemd-resolved.
我的工作场所域是*.cs.bham.ac.uk(大学内的计算机科学),而这些域在我工作时可以很好地解析。但是当我回家时,这些域停止解析。我现在所在的地方与任何事情都没有关系.bham.ac.uk。
bgeron@tinker ~> systemd-resolve git.cs.bham.ac.uk
git.cs.bham.ac.uk: resolve call failed: No appropriate name servers or networks for name found
bgeron@tinker ~> host git.cs.bham.ac.uk
Host git.cs.bham.ac.uk not found: 2(SERVFAIL)
bgeron@tinker ~> host git.cs.bham.ac.uk 192.168.1.254
Using domain server:
Name: 192.168.1.254
Address: 192.168.1.254#53
Aliases:
git.cs.bham.ac.uk has address 147.188.203.99
bgeron@tinker ~> systemd-resolve --status
Global
DNS Domain: lan
adf.bham.ac.uk
bham.ac.uk
cs.bham.ac.uk
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa …Run Code Online (Sandbox Code Playgroud) systemd-resolved ×10
dns ×6
networking ×3
17.04 ×1
20.04 ×1
cache ×1
dhcp ×1
dnsmasq ×1
internet ×1
resolv.conf ×1
syslog ×1
systemd ×1
upgrade ×1