Tos*_*rek 5 dns avahi resolvconf resolv.conf systemd-resolved
我目前正在从事一个需要进行一些 DNS 故障排除的项目,但是我对美妙的网络世界还很陌生,并且对从哪里开始有点茫然。我的具体问题可能属于 RaspberryPi StackExchange,因此我将避免交叉发布。只是在这里寻找信息。
寻找信息,我被引导到resolv.conf(5)文件resolvconf(8),systemd-resolve(1), 和avahi似乎是的野兽。
我的带有 Raspbian Buster 的 Raspi 似乎avahi-daemon正在运行。我的 Ubuntu 18.04.4 LTS 有systemd-resolvedAND avahi-daemon。并resolvconf(8)协调两个(手册页仅在Ubuntu)?何时/etc/resolv.conf使用/忽略?
在 Ubuntu 上:
$ cat /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 nameservers.
nameserver 127.0.0.53
search telus
Run Code Online (Sandbox Code Playgroud)
在树莓派上:
$ cat /etc/resolv.conf
# Generated by resolvconf
nameserver 192.168.0.1
nameserver 8.8.8.8
nameserver fd51:42f8:caae:d92e::1
Run Code Online (Sandbox Code Playgroud)
哪些公用事业公司对此负责?我真的不明白足够的行话来筛选手册页并区分所有这些,我很想解释一下它们的角色是如何相关的。
当你运行一个命令时,比如ping foobar系统需要计算出如何转换foobar为一个ip地址。
通常它看起来的第一个位置是/etc/nsswitch.conf.
这可能有一行,例如:
hosts: files dns mdns4
Run Code Online (Sandbox Code Playgroud)
这告诉查找例程首先查找“文件”,即/etc/hosts. 如果没有找到匹配项,那么它将尝试进行 DNS 查找。如果我们仍然不知道答案,那么它会尝试进行 mDNS 查找。
DNS 查找是系统随后查看的位置/etc/resolv.conf。这告诉它要查看哪些 DNS 服务器。在我的机器上,我通过 DHCP 自动配置了这个。
% cat /etc/resolv.conf
# Generated by NetworkManager
search mydomain
nameserver 10.0.0.1
nameserver 10.0.0.10
Run Code Online (Sandbox Code Playgroud)
如何 resolv.conf建立可以改变,根据不同的操作系统,你得到了什么可选组件,其他配置项,启动顺序上......在你的情况,在Ubuntu,你运行该文件配置为指向本地的systemd方案systemd-resolved而那会知道怎么去跟真正的DNS服务器。
在具有静态 IP 地址但没有 的主服务器上,systemd-resolved我手动编辑了此文件。
最后mdns4告诉例程尝试询问avahi-daemon它是否知道名称。
您可以更改规则。例如,如果/etc/nsswitch.conf只是说:
hosts: files
Run Code Online (Sandbox Code Playgroud)
那么只使用本地/etc/hosts文件。
其他条目是可能的;例如,ldap将使它进行 LDAP 查找。
| 归档时间: |
|
| 查看次数: |
4057 次 |
| 最近记录: |