有人知道我可以设置单独的主机文件或从 DNSMasq 向网络上的特定 PC 发送不同的响应吗?
具体来说,如果我想在 MAC ab:cd:00:01:02:03 上阻止我孩子的计算机上的 YouTube、Facebook 等,我的想法是在 DNSMasq 主机文件中添加条目,例如:
127.0.0.1 facebook.com、youtube.com
但我不想为整个家庭阻止这些,只想为他/她的计算机阻止这些。
感谢您的任何建议。
答案1
DNSMasq 条件能力主要依赖于其标记机制,仅与其 DHCP 端相关。
一种解决方案是首先使用 DNSMasq 的 DHCP 端标签哪个主机是“孩子”,哪个主机是“成人”:
# grownup network
dhcp-host=11:22:33:44:55:66,host01,192.168.1.11,infinite,set:grownup
dhcp-host=66:55:44:33:22:11,aa:bb:cc:dd:ee:ff,host02,192.168.1.12,infinite,set:growup
# child network
dhcp-host=ab:cd:00:01:02:03,child01,192.168.1.21,infinite,set:child
因此,有条件地设置dhcp-option
将特定 DNS 解析链归因于“成年”主机(假设10.10.10.1
和10.10.10.2
是您的 DNS 服务器,并且192.168.1.2
是您的 DNSMasq 框 IP 地址):
# options
dhcp-option=tag:grownup,option:dns-server,10.10.10.1,10.10.10.2
dhcp-option=tag:child,option:dns-server,192.168.1.2
从那里,“成年”主机将直接通过您的 ISP DNS 进行解析,而“儿童”主机将使用 DNSMasq 解析链(或位于 DNSMasq 盒子上的任何其他 DNS 服务器)。
最后添加几个host-record
或一个addn-hosts
选项:
host-record=www.facebook.com,127.0.0.1
有关 DNSMasq 的更多信息: