OpenWrt中配置dnsmasq的域名过滤功能,主要是配置/etc/dnsmasq.conf文件中增加
conf-file=/etc/data/blocklist.conf 这个配置我们过滤的域名文件
用脚本/usr/sbin/domain_blocklist.sh实现对blocklist.conf的域名设置如下:
=======================================================
#!/bin/sh
BLOCKLIST_FILE="/etc/data/blocklist.conf"
DOMAINS=$(uci get firewall.blocklist.domains 2>/dev/null) #从firewall.blocklist.domains配置获取需要过滤的域名
echo "# Domain blacklist generated on $(date)" > $BLOCKLIST_FILE
for domain in $DOMAINS; do
domain=$(echo "$domain" | xargs)
if [ -z "$domain" ]; then
continue
fi
if echo "$domain" | grep -qE '^[a-zA-Z0-9-]+\.[a-zA-Z]{2,}$' && ! echo "$domain" | grep -qE '\.[a-zA-Z0-9-]+\.[a-zA-Z]{2,}$'; then
echo "address=/.$domain/0.0.0.0" >> "$BLOCKLIST_FILE"
echo "address=/.$