Quantcast
Channel: 小蓝博客
Viewing all articles
Browse latest Browse all 3145

Ubuntu systemd-resolved DNS服务设置

$
0
0

下面介绍 Ubuntu 系统中如何配置 systemd-resolved 作为 DNS 服务,并对每一步配置进行详细说明,确保过程严谨且易于理解。😊


一、前提说明

Ubuntu 系统中默认采用 systemd-resolved 进行域名解析。该服务通过配置文件和命令行工具 <font color="red">resolvectl</font> 来管理 DNS 解析行为。我们将通过修改配置文件、重启服务以及使用命令验证配置状态来实现目标。


二、主要配置文件与命令说明

1. 修改配置文件

/etc/systemd/resolved.confsystemd-resolved 的主配置文件。在该文件中可设置 DNS 服务器地址、域名、以及缓存等参数。

示例配置文件:

# /etc/systemd/resolved.conf
[Resolve]
# 指定上游DNS服务器
DNS=<font color="red">8.8.8.8 8.8.4.4</font>
# 指定默认域名搜索列表
Domains=~example.com
# 开启DNSSEC验证
DNSSEC=allow-downgrade
# 设置多播DNS解析服务
MulticastDNS=yes

解释:

  • <font color="red">DNS</font>:指定上游 DNS 服务器地址,本例中使用公共DNS服务器。
  • <font color="red">Domains</font>:设置默认的域名搜索后缀,此处配置为 example.com
  • <font color="red">DNSSEC</font>:开启 DNSSEC 验证,allow-downgrade 表示在验证失败时降级。
  • <font color="red">MulticastDNS</font>:启用/禁用多播DNS功能,帮助解析本地网络内设备名称。

2. 重启 systemd-resolved 服务

修改配置文件后,需要重启服务以使配置生效:

sudo systemctl restart systemd-resolved

解释:

  • 使用 systemctl restart 命令重启 systemd-resolved,确保新配置加载生效。

3. 检查服务状态

通过以下命令检查 systemd-resolved 的运行状态:

sudo systemctl status systemd-resolved

解释:

  • 显示当前服务的状态、运行时间以及是否有错误信息,确保服务正常运行。

4. 使用 resolvectl 工具

resolvectl 是管理 DNS 解析的命令行工具,可以查看当前 DNS 配置与解析状态。

resolvectl status

解释:

  • 输出详细的 DNS 服务器、域名、DNSSEC 状态等信息,便于调试和验证配置效果。

三、详细工作流程与说明

下面给出 systemd-resolved DNS 配置的工作流程思维导图,清晰展示每一步的作用及配置流程:

flowchart TD
    A[编辑 <font color="red">/etc/systemd/resolved.conf</font>] --> B[配置上游DNS服务器、域名、DNSSEC等参数]
    B --> C[保存配置文件]
    C --> D[重启 systemd-resolved 服务]
    D --> E[使用 <font color="red">resolvectl status</font> 验证配置]
    E --> F[DNS解析服务正常运行]

解释:

  • A → B:编辑配置文件,填写所需的 DNS 参数。
  • C → D:重启服务确保新配置生效。
  • E:通过工具验证是否配置正确。
  • F:最终实现 DNS 解析服务的正常运行。

四、常用命令及详细说明表

命令/配置项作用解释
/etc/systemd/resolved.conf主配置文件,设置上游DNS、域名搜索、DNSSEC 等参数通过修改此文件实现自定义DNS解析设置
DNS=<font color="red">8.8.8.8 8.8.4.4</font>设置上游DNS服务器地址使用公共DNS服务器,可以根据实际需求修改地址
Domains=~example.com指定默认域名搜索列表当解析不带域名的主机名时自动添加后缀
DNSSEC=allow-downgrade开启DNSSEC安全验证,验证失败时降级保证DNS数据完整性,提高安全性
MulticastDNS=yes启用多播DNS解析支持局域网内设备名称解析
sudo systemctl restart systemd-resolved重启systemd-resolved服务使配置文件中修改的参数生效
sudo systemctl status systemd-resolved查看服务状态检查服务是否正常运行,是否有错误输出
resolvectl status查看当前 DNS 解析配置与状态验证DNS服务器、域名和DNSSEC状态等配置,便于排查问题

五、调试与验证建议

  1. 验证解析效果
    通过 pingdig 命令测试域名解析效果:

    ping example.com
    dig example.com

    解释:

    • 通过 ping 检查域名是否能正确解析成 IP 地址。
    • 通过 dig 获取详细解析过程,方便排查 DNS 解析问题。
  2. 查看日志
    如遇异常可查看日志文件,了解详细错误信息:

    journalctl -u systemd-resolved -e

    解释:

    • 日志输出有助于分析 DNS 解析过程中可能出现的错误,便于及时处理。

通过上述配置和步骤,我们可以实现 Ubuntu 中 systemd-resolved 的自定义 DNS 服务设置,确保系统网络解析稳定高效。每一步命令和配置均经过详细解释,希望对实际应用具有指导意义。👍


Viewing all articles
Browse latest Browse all 3145

Trending Articles