客户端规则
smartdns支持根据客户端IP,MAC地址,对客户端设置不同的规则,可以实现:
- 家长控制:限制特定客户端可访问的网站。
- 访问控制:禁止未经允许的客户端查询。
- 基于客户端域名分流查询:设置规则组和上游组绑定,不同的客户端查询不同的上游。
家长控制
设置smartdns针对特定的客户端使用特定的上游查询,也可以设置禁止访问特定的域名或IP地址,来实现家长控制。
# 启用规则组
group-begin child
# 设置规则组对应的客户端IP
client-rules 192.168.1.13
# 设置规则对应的客户端MAC地址
client-rules 01:02:03:04:05:06
# 设置规则组使用的上游服务器
server 1.2.3.4 -e
# 禁止特定域名
address /block.com/#
# 禁止特定IP
ignore-ip 2.2.2.2
group-end
为方便管理,也可采用多配置文件的方式,如
-
主配置文件
conf-file child.conf -group child
-
包含的配置文件
# 设置规则组对应的客户端IP client-rules 192.168.1.13 # 设置规则组使用的上游服务器 server 1.2.3.4 -e # 禁止特定域名 address /block.com/# # 禁止特定IP ignore-ip 2.2.2.2
其中group-begin和group-end的配置块,等价于conf-file -group 包含的配置文件,
访问控制
smartdns支持基本的ACL功能,可以通过如下参数开启和设置允许访问的主机。
# 启用ACL
acl-enable yes
# 设置允许访问的主机
client-rules 192.168.1.2/24
基于客户端域名分流查询
类似家长控制,smartdns可以将特定需要分流和配合ipset/nftset访问的主机,进行分流。
-
主配置文件
conf-file oversea.conf -group oversea
-
包含的配置文件
# 设置规则组对应的客户端IP client-rules 192.168.1.13 # 设置规则组使用的上游服务器 server-https https://1.2.3.4 -e server-tls tls://1.2.3.4 -e # 禁止测速 speed-check-mode none # 禁止IPV6和HTTPS记录 force-qtype-SOA 28 65 # 设置ipset ipset oversea