openwrt环境提供了uci方式配置dnsmasq,配置文件是
/etc/config/dhcp.conf
,dnsmasq本身也有配置文件,比如/etc/dnsmasq.conf
,它们之间的关系怎样,如何运作?似乎找到些线索,与大家分享。
主要配置文件
uci配置文件:
该文件能够通过luci界面进行修改,后台把它转换成dnsmasq能够识别的配置项。/etc/config/dhcp.conf
dnsmasq本身的配置文件:
通常情况下,dnsmasq运行时会读取该文件,但默认情况下,该文件全是注释/etc/dnsmasq.conf
#
,看似不起任何作用。运行时配置文件:
用/var/dnsmasq.conf.cfgxxxx
ps
命令查看dnsmasq进程信息,可看到如下内容:查看这个文件,真相浮出水面ps | grep dns
......
1056 dnsmasq 1344 S /usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf.cfg01411c
......可以看出,dnsmasq运行时读取的配置文件是cat /var/etc/dnsmasq.conf.cfg01411c
auto-generated config file from /etc/config/dhcp
conf-file=/etc/dnsmasq.conf
....../var/dnsmasq.conf.cfgxxxx
,该配置文件由/etc/config/dhcp.conf
转换而来;从文件中的配置项conf-file=/etc/dnsmasq.conf
来看,dnsmasq运行时还会读取/etc/dnsmasq.conf
。
结论
从配置文件情况,可以这样配置openwrt:通过luci界面配置dnsmasq,或通过修改
/etc/dnsmasq.conf
文件配置dnsmasq。配置原则:尽量使用luci界面配置dnsmasq,如果出现luci界面不支持的配置项,则考虑在
/etc/dnsmasq.conf
中进行配置。注:luci不支持的配置项,比如srv-host、rebind-domain-ok等。