systemd-resolve 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 . 指令索引systemd-235

名称

systemd-resolve — 解析主机名、IP地址、域名、DNS资源记录、服务

大纲

systemd-resolve [OPTIONS...] HOSTNAME...

systemd-resolve [OPTIONS...] ADDRESS...

systemd-resolve [OPTIONS...] --type=TYPE DOMAIN...

systemd-resolve [OPTIONS...] --service [[NAME] TYPE] DOMAIN

systemd-resolve [OPTIONS...] --openpgp USER@DOMAIN

systemd-resolve [OPTIONS...] --tlsa DOMAIN[:PORT]

systemd-resolve [OPTIONS...] --statistics

systemd-resolve [OPTIONS...] --reset-statistics

描述

systemd-resolve 利用 systemd-resolved.service(8) 系统服务解析主机名、IP地址、域名、DNS资源记录、服务。 默认情况下,参数列表将被视为域名/主机名的列表,程序的输出将是它们所对应的 IPv4 或 IPv6 地址。 如果参数符合 IPv4 或 IPv6 格式,那么表示反解析IP地址所对应的主机名。

程序的输出包括查找所使用的协议与网络接口, 还包括查找到的信息是否是可靠的。 所有通过 DNSSEC 认证的信息将被视为是可靠的, 所有从本地可信源获取的信息也被视为是可靠的, 包括对本机主机名的解析、特殊的 "localhost" 主机名、所有来自 /etc/hosts 中的结果。

--type= 用于指定仅查询特定类型的DNS资源记录(A, AAAA, SOA, MX, …), 而不是默认的地址解析/反解析。 特殊值 "help" 可用于列出所有可用的记录类型。

--service 用于解析 SRVDNS-SD 服务(见下文)。 需要一至三个参数。如果指定了三个参数,那么第一个是 DNS-SD 服务名, 第二个是 SRV 服务类型,第三个是要查找的域。在这种情况下,将会执行一次完整的 DNS-SD 风格的 SRV 与 TXT 查询。 如果只指定了二个参数,那么第一个是 SRV 服务类型, 第二个是要查找的域。在这种情况下,将省略 TXT 查询。最后,如果只指定了一个参数, 那么该参数将被视为域名,并且已经加上了 SRV 类型前缀。在这种情况下,将会执行一个 SRV 查询(不含 TXT)

--openpgp 用于查询存储在DNS的 OPENPGPKEY 类型的资源记录中的 PGP 公钥。 需要指定至少一个Email地址。

--tlsa 用于查询存储在DNS的 TLSA 类型的资源记录中的 TLS 公钥。 需要指定至少一个域名。

--statistics 用于显示解析统计, 包括 DNSSEC 验证成功与失败的数量。

--reset-statistics 用于重置各种解析统计的计数器, 包括所有 --statistics 输出的统计数据。此操作需要超级用户权限。

选项

-4, -6

在解析主机名时,默认同时查询 IPv4 与 IPv6 地址。 使用 -4 表示仅查询 IPv4 地址, 使用 -6 表示仅查询 IPv6 地址。

-i INTERFACE, --interface=INTERFACE

指定使用哪个网络接口。 可以使用网卡的数字序号,也可以使用例如 "en0" 这样的网卡名称。 注意,在使用全局DNS(位于 /etc/resolv.conf/etc/systemd/resolve.conf) 的时候,此选项没有效果。

-p PROTOCOL, --protocol=PROTOCOL

指定查询所用的协议。可以设为下列值之一: "dns"(经典的单播DNS)、 "llmnr"(Link-Local Multicast Name Resolution)、 "llmnr-ipv4" 、 "llmnr-ipv6" 、 "mdns"(Multicast DNS) 、 "mdns-ipv4"(专用于特定IPv4的MDNS) 、 "mdns-ipv6"(专用于特定IPv6的MDNS) 。 默认使用所有适合的协议。 可以多次使用此选项以指定多个查询协议。 注意:(1)设置 "llmnr" 等价于同时设置 "llmnr-ipv4" 与 "llmnr-ipv6" 。(2)此选项并不强制 systemd-resolved.service(8) 必须使用指定的查询协议,因为某个必需的网络接口与相应的配置可能不存在。 (3)特殊值 "help" 可用于列出所有可用的协议。

-t TYPE, --type=TYPE, -c CLASS, --class=CLASS

指定查找的DNS资源记录的 type(A, AAAA, MX, …) 与 class(IN, ANY, …)。 如果使用了此选项,那么仅查询与指定的 type/class 匹配的DNS资源记录。 如果仅指定了 type 的话,那么 class 的默认值是"IN"。 特殊值 "help" 可用于列出所有可用的值。

--service

根据指定的参数列表,开启 DNS-SD 与 简单 SRV 服务解析。 详见前文。

--service-address=BOOL

默认值 yes 表示在使用 --service 查找服务时,同时也解析包含在 SRV 资源记录内的主机名。

--service-txt=BOOL

默认值 yes 表示在使用 --service 查找 DNS-SD 服务时,同时也解析 TXT 服务元数据记录。

--openpgp

查询存储在DNS的 OPENPGPKEY 类型的资源记录中的 PGP 公钥(参见前文)。 指定的Email地址将被转换为对应的DNS域名,并打印出所有 OPENPGPKEY 公钥。

--tlsa

为每一个带有 port 与 family 前缀的名字 ("_port._family.domain") 查询存储在DNS的 TLSA 类型的资源记录中的 TLS 公钥(参见前文)。 端口号可以明确的写在冒号(:)之后, 否则将使用默认的 443 端口。 family 可以作为 --tlsa 的参数指定,否则将使用默认值 tcp

--cname=BOOL

默认值 yes 表示追踪 DNS 的 CNAME 或 DNAME 重定向。 否则,在接收到 CNAME 或 DNAME 应答后,直接返回错误。

--search=BOOL

默认值 yes 表示所有不含"."的主机名都将在搜索域列表(若非空)中进行搜索。

--raw[=payload|packet]

以原始的二进制格式显示应答的数据。 "payload"(缺省值)表示导出数据包的荷载。 "packet" 表示导出原始的数据帧,并在前面加上一个小端序形式表示的64位整数。 此选项仅用于调试目的。

--legend=BOOL

默认值 yes 表示显示应答内容的标题头与元数据。

--statistics

显示解析统计,包括 DNSSEC 是否可用, 以及 DNSSEC 验证成功与失败的数量。

--reset-statistics

重置各种解析统计的计数器,包括所有 --statistics 输出的统计数据。此操作需要超级用户权限。

--flush-caches

刷新本地DNS资源记录缓存。 大致相当于将 SIGUSR2 信号发送给 systemd-resolved 服务。

--reset-server-features

刷新所有已缓存的DNS服务器特性(例如是否支持DNSSCE), 以确保在执行下一次DNS查询的时候重新检测DNS服务器的各项特性。 大致相当于将 SIGRTMIN+1 信号发送给 systemd-resolved 服务。

--status

显示全局DNS设置、以及针对每个连接的DNS设置。

-h, --help

显示简短的帮助信息并退出。

--version

显示简短的版本信息并退出。

--no-pager

不将程序的输出内容管道(pipe)给分页程序。

例子

例 1. 解析 "www.0pointer.net" 域名所对应的地址

$ systemd-resolve www.0pointer.net
www.0pointer.net: 2a01:238:43ed:c300:10c3:bcf3:3266:da74
                  85.214.157.71

-- Information acquired via protocol DNS in 611.6ms.
-- Data is authenticated: no

例 2. 反解析 "85.214.157.71" 地址所对应的域名

$ systemd-resolve 85.214.157.71
85.214.157.71: gardel.0pointer.net

-- Information acquired via protocol DNS in 1.2997s.
-- Data is authenticated: no

例 3. 查找 "yahoo.com" 域名的 MX 记录

$ systemd-resolve -t MX yahoo.com --legend=no
yahoo.com. IN MX    1 mta7.am0.yahoodns.net
yahoo.com. IN MX    1 mta6.am0.yahoodns.net
yahoo.com. IN MX    1 mta5.am0.yahoodns.net

例 4. 查找一个 SRV 服务

$ systemd-resolve --service _xmpp-server._tcp gmail.com
_xmpp-server._tcp/gmail.com: alt1.xmpp-server.l.google.com:5269 [priority=20, weight=0]
                             173.194.210.125
                             alt4.xmpp-server.l.google.com:5269 [priority=20, weight=0]
                             173.194.65.125
                             …

例 5. 查找一个 PGP 公钥

$ systemd-resolve --openpgp zbyszek@fedoraproject.org
d08ee310438ca124a6149ea5cc21b6313b390dce485576eff96f8722._openpgpkey.fedoraproject.org. IN OPENPGPKEY
        mQINBFBHPMsBEACeInGYJCb+7TurKfb6wGyTottCDtiSJB310i37/6ZYoeIay/5soJjlMyf
        MFQ9T2XNT/0LM6gTa0MpC1st9LnzYTMsT6tzRly1D1UbVI6xw0g0vE5y2Cjk3xUwAynCsSs
        …

例 6. 查找一个 TLS 公钥 (可以省略 "=tcp" 与 ":443")

$ systemd-resolve --tlsa=tcp fedoraproject.org:443
_443._tcp.fedoraproject.org IN TLSA 0 0 1 19400be5b7a31fb733917700789d2f0a2471c0c9d506c0e504c06c16d7cb17c0
        -- Cert. usage: CA constraint
        -- Selector: Full Certificate
        -- Matching type: SHA-256

参见

systemd(1), systemd-resolved.service(8)