interfaces 文件添加 dns
-
我正在T113平台做网络开发,想在/etc/network/interfaces文件添加dns,修改interfaces文件后重启,发现/etc/resolv.conf文件中并没有我新添加的dns,以下是我的配置,请教一下,可能的原因是什么?
auto eth0
iface eth0 inet static
address 192.168.0.101
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.8.8 8.8.4.4 -
@qql_6699 /etc/network/interfaces和/etc/resolv.conf是独立配置文件,正常逻辑类似ping,socket发起网址请求时,会优先选择里面的dns-nameservers的dns定义去解析,如果不成功,再去检索/etc/resolv.conf里面的信息。你现在需要确认的时dns-nameservers是否设置成功。
另外/etc/network/interfaces是在执行/sbin/ifup -a里面解析调用,源码可以看busybox/networking/ifupdown.c,相关源码内部没有修改/etc/resolv.conf文件,如果你想修改,自己单独修改/etc/resolv.conf。
-
@jasonzhang 非常感谢您的回复。我在测试时,发现设置静态IP,ping不能ping通,在/etc/resolv.conf添加DNS 8.8.8.8后,就能正常ping了,所以以为是/etc/resolv.conf的问题。那根据您的回复,这个问题,应该是我在/etc/network/interfaces中设置的DNS没有生效造成的?那可能的原因又是什么呢?
-
@qql_6699 去看了busybox中的ifup实现,最终执行代码是这个字段
里面并没有解析dns-namesevers的配置,如果你使用buildroot或者openwrt,这个字段应该没有用。这可能是systemd的实现(一般debian类系统Ubuntu,armbian)的支持,busybox中的命令未做支持。
-
@jasonzhang 我是用的是buildroot,您的意思是,busybox不支持,所以在interfaces文件中添加dns,dns并不能被调用?那这个问题,有什么通用解决方案吗?
-
@qql_6699 通用方案就是添加到/etc/resolv.conf里面,或者你切换到systemd系统测试下,buildroot里面也支持的。检索busybox可以修改。
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号