openwrt阻断域名
方法
安装dnsmasq-full
进入系统->软件包
安装dnsmasq-full
,勾选允许覆盖冲突的包文件
进入系统->启动项,重启dnsmasq
查看dns ttl
进入网络->DHCP/DNS->限制
最大缓存 TTL
的值,下文使用{ttl}
代指,默认应为3600
配置防火墙ip集
进入网络->防火墙->ip集
配置ipv6
点击添加
名称任意(不能与已有规则重复),下文使用{ipset}6
代指,例如yuanshen6
数据包字段匹配选择dest_ip
族选择ipv6
超时填写{ttl}
,例如3600
点击保存
配置ipv4
点击添加
名称任意(不能与已有规则重复),下文使用{ipset}4
代指,例如yuanshen4
数据包字段匹配选择dest_ip
族选择ipv4
超时填写{ttl}
,例如3600
点击保存
配置防火墙通信规则
进入网络->防火墙->通信规则
配置ipv6
点击添加
名称任意(不能与已有规则重复)
源区域选择
设备(输出)
当你的局域网设备正在使用路由器上的代理进行通信时lan
当你的局域网在lan
区域时
目标区域选择wan
操作选择
拒绝
会响应拒绝信息丢弃
会直接丢弃包
点击高级设置
页
地址族限制选择仅ipv6
使用ip集选择{ipset}6
,例如yuanshen6
配置ipv4
点击添加
名称任意(不能与已有规则重复)
源区域选择
设备(输出)
当你的局域网设备正在使用路由器上的代理进行通信时lan
当你的局域网在lan
区域时
目标区域选择wan
操作选择
拒绝
会响应拒绝信息丢弃
会直接丢弃包
点击高级设置
页
地址族限制选择仅ipv4
使用ip集选择{ipset}4
,例如yuanshen4
配置dns
进入网络->DHCP/DNS->ip集
点击添加
集合名输入{ipset}4
,例如yuanshen4
及{ipset}6
,例如yuanshen6
FQDN输入若干全限定域名,下文使用{hosts}
代指
表格ip族保持默认IPv4+6
点击保存
测试
在测试机访问{hosts}
进入系统->管理权->SSH访问
添加lan
区域
ssh登陆openwrt
执行命令nft list set inet fw4 {ipset}4
,例如nft list set inet fw4 yuanshen4
正常应该可以看到返回
table inet fw4 {
set yuanshen4 {
type ipv4_addr
timeout 1h
elements = { 120.xxx.xxx.231 expires 52m53s900ms }
}
}
执行命令nft list set inet fw4 {ipset}6
同理,例如nft list set inet fw4 yuanshen6
- 原文作者:qydysky
- 原文链接:/post/20241216openwrt/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。