我使用 systemd-networkd 和 systemd-resolved 来管理我的网络配置和 DNS 解析。我以为它会包括 DHCP 服务器指定的搜索域,但似乎没有。
# /etc/systemd/network/wlan0.network
[Match]
Name=wlan0
[Network]
DHCP=yes
DHCP 服务器响应包括“选项:(15)域名”(我已经使用 wireshark 检查过),并且我还尝试添加“选项:(119)域搜索”,但我尝试的任何方法都没有导致在 resolv.conf 文件中添加“搜索”行:
# /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
...
nameserver 192.168.1.1
nameserver fe80::...
我知道我可以在或Domains=....
中指定,但我希望 systemd 会尊重 DHCP 选项。wlan0.network
/etc/systemd/resolved.conf
我已经重新启动了网络系统并确认/etc/resolv.conf
符号链接正确:
$ systemctl daemon-reload && sysetmctl restart systemd-networkd && systemctl restart systemd-resolved
$ ll /etc/resolv.conf
lrwxrwxrwx 1 root root 32 Oct 4 2017 /etc/resolv.conf -> /run/systemd/resolve/resolv.conf
$ pacman -Qi systemd | grep Version
Version : 243.51-1
答案1
您应该使用UseDomains=true
评论中建议的选项,但根据您使用的 systemd 版本,这可能不够。我猜您是受到 systemd 问题的影响#8174–systemd-networkd DHCP 搜索域选项这是固定的于2019年7月14日发布版本2432019 年 9 月 3 日的 systemd。
该问题描述如下:
我预计,通过在网络配置中启用 [DHCP]: UseDomains=true,DHCP 客户端将使用 DHCP 提供的搜索域。如果服务器将此选项指定为“强制”,则客户端仅使用 DHCP 提供的搜索域
顺便说一句,我强烈建议您咨询 Linux 相关的问题https://unix.stackexchange.com