跳转至

客户端规则

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

为方便管理,也可采用多配置文件的方式,如

  1. 主配置文件

    conf-file child.conf -group child
    
  2. 包含的配置文件

    # 设置规则组对应的客户端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访问的主机,进行分流。

  1. 主配置文件

    conf-file oversea.conf -group oversea
    
  2. 包含的配置文件

    # 设置规则组对应的客户端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