我有一个连接到 wifi 的嵌入式 Linux 设备。它配置了 DHCP,并配置为使用特定的 DNS 服务器。当前配置有效。
但是,我想删除 DNS 配置并让 DHCP 为我提供自动 DNS(据我所知,这可以与 IP 响应一起完成)。当我从中删除名称服务器时,/etc/resolv.conf
我可以 ping 通,但名称解析不起作用。
nslookup: write to '127.0.0.1': Connection refused
我可能缺少一些配置。有人能帮忙吗?我正在使用wpa_supplicant
(dhcpcd
我们没有运行网络管理器/绑定等)。我需要额外的守护进程吗?或者这只是一个配置问题?
答案1
DNS 服务器地址必须写入/etc/resolv.conf
文件。程序希望在此处找到它 – dhcpcd 没有其他标准位置来存储 DHCP 提供的服务器地址;所有 DHCP 客户端都需要更新 resolv.conf 文件。
(如果您的 /etc 是只读的,则该文件可以是指向 /run 或 /tmp 中某处的符号链接。)
dhcpcd 将使用dhcpcd-hooks/20-resolv.conf
标准 dhcpcd 安装中附带的钩子脚本自动更新 /etc/resolv.conf。请确保此脚本和通用dhcpcd-run-hooks
脚本存在于您的嵌入式系统中。
(在我的系统上,这些脚本位于/usr/lib/dhcpcd
,但路径可能根据编译选项而变化。)