当我在CentOS 7中启动dnsmasq服务时,我得到了这样的状态:
这是因为我在/etc/dnsmasq.d/wblist.conf中添加了一个wblist.conf
cat wblist.conf
# for router itself
server=/google.com.tw/192.168.8.20#53
ipset=/google.com.tw/gfwlist
ipset -L gfwlist
Name: gfwlist
Type: hash:net
Revision: 3
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16784
References: 0
Members:
但是如果我评论ipset线,可以成功重启服务。
我不知道为什么。我已经使用了dnsmasq / ipset很长一段时间了,但突然遇到了这个问题。
有没有人遇到过这种情况?
答案 0 :(得分:0)
不建议禁用 SElinux。
您可以通过创建并安装 SELinux 策略模块来解决此问题。
首先您需要创建一个类型强制规则文件,名为my-dnsmasq.te,内容如下:
module my-dnsmasq 1.0;
require {
type dnsmasq_t;
class netlink_socket { bind create write };
}
#============= dnsmasq_t ==============
allow dnsmasq_t self:netlink_socket { bind create write };
现在可以编译成策略模块包文件了:
checkmodule -M -m -o my-dnsmasq.mod my-dnsmasq.te
semodule_package -o my-dnsmasq.pp -m my-dnsmasq.mod
获得策略模块包文件my-dnsmasq.pp后,安装它:
sudo semodule -i my-dnsmasq.pp
最后,重启dnsmasq.service:
sudo systemctl restart dnsmasq
并进行如下测试:
nslookup google.com.tw
ipset list gfwlist
如果一切正常,你会看到一个ip被添加到ipset中。
答案 1 :(得分:-2)
我发现这篇文章SELinux阻止ipset创建一个netlink套接字,我禁用了SELinux,然后就可以了。我不知道为什么。