# AdGuard Home 配置文件
# 官方文档参考: https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration

# HTTP/Web 界面相关设置
#http:
#  # pprof (性能分析) 相关设置
#  pprof:
#    port: 6060          # pprof 服务的端口
#    enabled: false      # 是否启用 pprof，默认为 false，建议保持禁用
#  address: https://xx.tc.hk.go.107421.xyz  # Web 界面的监听地址和端口
#  session_ttl: 720h     # Web 界面登录会话的有效时间 (720小时 = 30天)

# 用户认证设置
users:
  # 在这里添加您的用户。您必须手动生成密码的 bcrypt 哈希值。
  # 例如，在 Linux 系统中，您可以使用 htpasswd 工具生成：
  # htpasswd -nb your_username your_password
  # 然后将输出的整行 (例如: your_username:$apr1$....) 替换掉下面的内容。
  - name: zeaslity  # 您的用户名
    password: "$2y$05$b8Vbq3FrGqFNDceFTPFf.eRVYznIineyqtVr60hURTmFKLwdvadCi" # 将这里替换为您生成的密码哈希值

# 认证尝试次数与锁定时间
auth_attempts: 5        # 允许的最大登录失败次数
block_auth_min: 15      # 登录失败次数过多后，锁定登录的分钟数

http_proxy: ""          # HTTP 代理地址，通常留空
language: "zh-cn"            # Web 界面语言，留空则自动检测浏览器语言
theme: auto             # Web 界面主题 (auto, light, dark)

# DNS 服务器相关设置
dns:
  bind_hosts:
    - 0.0.0.0         # DNS 服务器监听的 IP 地址，127.0.0.1 表示只允许本机访问
  port: 53              # DNS 服务器监听的端口，53是标准DNS端口

  anonymize_client_ip: false # 是否在将 EDNS Client Subnet (ECS) 信息转发给上游时匿名化客户端 IP
  
  # DNS 请求速率限制
  ratelimit: 40           # 每个客户端每秒允许的最大 DNS 请求数
  ratelimit_subnet_len_ipv4: 24 # 用于速率限制的 IPv4 子网掩码长度 (24表示C类地址)
  ratelimit_subnet_len_ipv6: 56 # 用于速率限制的 IPv6 子网掩码长度
  ratelimit_whitelist: [] # 不受速率限制的 IP 地址列表

  refuse_any: true      # 是否拒绝类型为 ANY 的 DNS 请求，以防止被用于 DNS 放大攻击

  # 上游 DNS 服务器设置
  upstream_dns:
    - https://dns.google/dns-query # Google DNS (DoH)
    - https://1.1.1.1/dns-query      # Cloudflare DNS (DoH)
    - tls://8.8.4.4:853                 # Google DNS (DoT)
  upstream_dns_file: ""   # 从文件中加载上游 DNS 服务器列表，留空则不使用
  
  # 引导 DNS 服务器 (用于解析上游 DoH/DoT/DoQ 的域名)
  bootstrap_dns:
    - 1.1.1.1
    - 8.8.8.8

  # 备用 DNS 服务器，当所有上游服务器都不可用时使用，可以留空
  fallback_dns:
    - 1.1.1.1
    - 8.8.8.8

  # 上游服务器查询模式
  upstream_mode: load_balance # "load_balance": 负载均衡, "parallel": 并行请求, "fastest_ip": 最快IP模式

  fastest_timeout: 1s   # 在 "fastest_ip" 模式下，等待响应的超时时间

  # 访问控制
  allowed_clients: []     # 允许访问的客户端列表，留空表示允许所有
  disallowed_clients: []  # 禁止访问的客户端列表
  
  # 默认拦截的域名
  blocked_hosts:
    - version.bind
    - id.server
    - hostname.bind
  
  # 信任的反向代理 IP 地址范围
  trusted_proxies:
    - 127.0.0.0/8
    - ::1/128

  # DNS 缓存设置
  cache_enabled: true     # 是否启用 DNS 缓存
  cache_size: 419430400     # 缓存大小 (字节, 这里是 400MB)
  cache_ttl_min: 0        # 覆盖 DNS 记录的最小 TTL (秒)，0 表示不覆盖
  cache_ttl_max: 0        # 覆盖 DNS 记录的最大 TTL (秒)，0 表示不覆盖
  cache_optimistic: false # 是否启用乐观缓存 (返回过期的缓存记录并异步刷新)

  bogus_nxdomain: []    # 将指定的 IP 地址的 NXDOMAIN 响应视为伪造响应

  aaaa_disabled: false    # 是否禁用对 IPv6 (AAAA) 记录的解析
  enable_dnssec: false    # 是否启用 DNSSEC 支持

  # EDNS Client Subnet (ECS) 设置
  edns_client_subnet:
    custom_ip: ""       # 自定义发送给上游的 IP 地址
    enabled: false      # 是否启用 ECS
    use_custom: false   # 是否使用上面定义的 custom_ip

  max_goroutines: 300     # 处理 DNS 请求的最大并发协程数
  handle_ddr: true        # 是否处理 Discovery of Designated Resolvers (DDR)

  # IPSet 设置 (需要内核支持)
  ipset: []
  ipset_file: ""

  bootstrap_prefer_ipv6: false # 引导DNS是否优先使用 IPv6
  upstream_timeout: 10s   # 上游 DNS 请求的超时时间

  private_networks: []    # 自定义的私有网络范围
  use_private_ptr_resolvers: true # 是否为私有地址使用私有反向DNS解析器
  local_ptr_upstreams: [] # 用于PTR请求的本地上游DNS

  # DNS64 设置 (用于 NAT64)
  use_dns64: false
  dns64_prefixes: []

  # HTTP/3 相关
  serve_http3: false      # 是否通过 HTTP/3 提供 DoH 服务
  use_http3_upstreams: true # 是否使用 HTTP/3 连接到上游 DoH 服务器

  serve_plain_dns: false  # 是否为 DoH 和 DoT 客户端提供普通DNS (53端口)
  hostsfile_enabled: true # 是否使用操作系统的 hosts 文件
  
  # 待处理请求队列 (防止重复向上游请求)
  pending_requests:
    enabled: true

# TLS (加密) 相关设置
tls:
  enabled: true         # 是否启用 TLS (HTTPS, DoH, DoT, DoQ)
  server_name: xx.tc.hk.go.107421.xyz # 您的服务器域名
  force_https: true     # 是否强制将 HTTP 请求重定向到 HTTPS
  port_https: 443       # HTTPS 端口
  port_dns_over_tls: 253  # DNS-over-TLS (DoT) 端口
  port_dns_over_quic: 253 # DNS-over-QUIC (DoQ) 端口
  port_dnscrypt: 0      # DNSCrypt 端口，0表示禁用
  dnscrypt_config_file: "" # DNSCrypt 配置文件路径
  
  allow_unencrypted_doh: false # 是否允许通过未加密的 HTTP 接收 DoH 请求

  # 证书和私钥设置
  certificate_chain: ""   # 证书链内容 (如果直接粘贴内容)
  private_key: ""         # 私钥内容 (如果直接粘贴内容)
  certificate_path: /root/.acme.sh/xx.tc.hk.go.107421.xyz_ecc/fullchain.cer # 证书文件路径
  private_key_path: /root/.acme.sh/xx.tc.hk.go.107421.xyz_ecc/xx.tc.hk.go.107421.xyz.key # 私钥文件路径

  strict_sni_check: true # 是否为 DoT 和 DoH 启用严格的 SNI 检查

# 查询日志设置
querylog:
  dir_path: ""          # 日志文件存储目录，留空为 AdGuard Home 工作目录
  ignored: []           # 不记录日志的域名列表
  interval: 2160h       # 日志轮转周期 (90天)
  size_memory: 1000     # 在内存中保留的最新日志条数
  enabled: true         # 是否启用查询日志
  file_enabled: false    # 是否将日志写入文件

# 统计信息设置
statistics:
  dir_path: ""          # 统计数据存储目录
  ignored: []           # 不计入统计的域名列表
  interval: 24h         # 统计信息保留时长
  enabled: true         # 是否启用统计功能

# 过滤规则列表设置
filters:
  # AdGuard DNS 过滤器
  - enabled: true
    url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt
    name: AdGuard DNS filter
    id: 1
  # AdAway 默认黑名单 (已禁用)
  - enabled: false
    url: https://adguardteam.github.io/HostlistsRegistry/assets/filter_2.txt
    name: AdAway Default Blocklist
    id: 2

whitelist_filters: []   # 白名单过滤列表
user_rules: []          # 用户自定义过滤规则

# DHCP 服务器设置 (当前禁用)
dhcp:
  enabled: false
  interface_name: ""
  local_domain_name: lan
  dhcpv4:
    gateway_ip: ""
    subnet_mask: ""
    range_start: ""
    range_end: ""
    lease_duration: 86400
    icmp_timeout_msec: 1000
    options: []
  dhcpv6:
    range_start: ""
    lease_duration: 86400
    ra_slaac_only: false
    ra_allow_slaac: false

# 内容过滤总设置
filtering:
  blocking_ipv4: ""     # 当域名被拦截时，返回的 IPv4 地址 (留空为默认)
  blocking_ipv6: ""     # 当域名被拦截时，返回的 IPv6 地址 (留空为默认)

  # 按服务拦截
  blocked_services:
    schedule:
      time_zone: Local  # 时间表使用的时区
    ids: []             # 要拦截的服务 ID 列表

  protection_disabled_until: null # 临时禁用保护直至指定时间

  # 安全搜索设置
  safe_search:
    enabled: false      # 是否为搜索引擎强制启用安全搜索
    bing: true
    duckduckgo: true
    ecosia: true
    google: true
    pixabay: true
    yandex: true
    youtube: true
  
  # 拦截模式
  blocking_mode: default # default: 默认模式; nxdomain: 返回 NXDOMAIN; null_ip: 返回 0.0.0.0; custom_ip: 返回自定义 IP
  
  parental_block_host: family-block.dns.adguard.com # 家长控制拦截主机
  safebrowsing_block_host: standard-block.dns.adguard.com # 安全浏览拦截主机
  
  rewrites: []          # DNS 重写规则
  safe_fs_patterns: []  # 文件系统安全模式

  # 各种功能的缓存大小 (字节)
  safebrowsing_cache_size: 104857600 # 安全浏览 (100MB)
  safesearch_cache_size: 104857600   # 安全搜索 (100MB)
  parental_cache_size: 1048576     # 家长控制 (1MB)
  cache_time: 180        # 缓存时间 (秒)

  filters_update_interval: 24 # 过滤器自动更新间隔 (小时)
  blocked_response_ttl: 10  # 被拦截域名的 DNS 响应 TTL (秒)
  
  # 总开关
  filtering_enabled: true     # 是否启用广告过滤
  parental_enabled: false     # 是否启用家长控制
  safebrowsing_enabled: false # 是否启用安全浏览
  protection_enabled: true    # AdGuard 总保护开关

# 客户端设置
clients:
  runtime_sources:
    whois: true
    arp: true
    rdns: false
    dhcp: true
    hosts: true
  persistent: []          # 持久化客户端设置

# 一般日志设置
log:
  enabled: true         # 是否启用 AdGuard Home 本身的日志记录
  file: ""              # 日志文件路径，留空为 stdout
  max_backups: 0        # 保留的旧日志文件数量
  max_size: 100         # 每个日志文件的最大大小 (MB)
  max_age: 3            # 旧日志文件保留天数
  compress: false       # 是否压缩旧日志文件
  local_time: false     # 是否使用本地时间记录日志
  verbose: false        # 是否启用详细日志模式

# 操作系统相关设置
os:
  group: ""
  user: ""
  rlimit_nofile: 0

schema_version: 30      # 配置文件架构版本，请勿手动修改