systemd-resolved 的工作模式是怎样的?本地建了 adguard home 还有必要开着 resolved 吗?

2021-03-17 11:33:37 +08:00
 gridsah
家用环境准备尝鲜 ubuntu server 20.04 LTS 。

读了读 man page:在 /etc/systemd/resolved.conf 里设置了 DNSStubListener=no 解放了 53 端口。

现在在本地用 docker 建好了 adguard home 。那么:

1. 被 DNSStubListener=no 这个选项关闭的 DNS stub listener 到底是个什么服务?

2. resolved 这个组件到底接管了哪些配置文件?

3. 现在 resolved 还有必要开着吗?

按照我的理解,resolved 这个组件主要在本地实现了一个 DNS 服务器,所有的本地 DNS 请求都被劫持到这个服务器上进行解析。现在关闭了 resolved 的本地解析,那么这个服务也就没必要开着了。

4. 我这样理解对不对???

5. 各位都是怎么配置 resolved 这个组件的?
2405 次点击
所在节点    程序员
8 条回复
no1xsyzy
2021-03-17 12:10:42 +08:00
昨天刚碰到没设置好 resolved 导致 gpg 连不上任何服务器的问题……
你看下你的 /etc/resolv.conf 是不是一个 symlink,可能通过 symlink 的方式被 resolved 接管了。

没有劫持,根据 resolved 的 manpage,它暴露三个接口:D-Bus, getaddrinfo, 127.0.0.53
不过通常会建议用 symlink 接管 /etc/resolv.conf
不清楚 AdGuard 是否有对应的接管方式,不然就照着 /usr/lib/systemd/resolv.conf 写一个指向 AdGuard 的呗
gridsah
2021-03-17 12:22:46 +08:00
@no1xsyzy 设置 DNSStubListener=no 以后 /etc/resolved.conf 不再是一个 symlink,我删除 /etc/resolved.conf 后手动创建了 ln -s /run/systemd/resolve/resolved.conf /etc/resolved.conf 。目前倒是一切正常。

我就是不确定我一通操作干掉了些什么服务...
no1xsyzy
2021-03-17 13:34:10 +08:00
那我觉得你需要看的是这个: https://wiki.archlinux.org/index.php/Domain_name_resolution

总之不带 @ 地 dig 一下,正常就是正常
话说,真的有只找 D-Bus resolve1 的程序吗?
jim9606
2021-03-17 16:50:52 +08:00
1. DNSStubListener 开关让 resolved 监听 127.0.0.53:53 提供 DNS 解析
2. /etc/resolv.conf 链接至 /run/systemd/resolve/stub-resolv.conf,该配置指定了 nameserver 127.0.0.53
3. 应该不开会好点

大部分链接 glibc 的程序会使用 Name Service Switch (libnss)解析域名,由 /etc/nsswitch.conf 控制,通常是通过 libnss-resolve 插件走 D-Bus 访问 resolved 查询。

不链接 glibc 的程序(例如原生 go 程序)通过读 /etc/resolv.conf 自行发起查询。
julyclyde
2021-03-22 16:51:46 +08:00
@jim9606 现在 systemd 对传统的入侵越来越大了啊,居然还有 libnss-resolve 这种东西?
jim9606
2021-03-22 22:15:05 +08:00
@julyclyde 不过既然是插件,算不上什么入侵吧,链接 libnss 的程序保持二进制兼容的。ubuntu 仓库还有一堆别的 nss 插件,我看比较实用的有 libnss-docker
gridsah
2021-03-22 22:21:48 +08:00
@julyclyde ubuntu 20.04 lts 太吃资源,转回 Debian 10 了,等 Debian 11 上线。
julyclyde
2021-03-23 10:57:45 +08:00
@jim9606 我就是觉得算是手脚比较干净的入侵
常用的 libnss 没那么多品种啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/762398

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX