EndDNS配置文件介绍

配置文件一共有两个

  • dnswhitelist.toml,配置IP白名单
    • whiteList,IP白名单列表,只有在此列表中的IP才能在config.toml中使用
    • whiteListSign,IP白名单列表签名,自已签名可使用"enddns sign"命令,
      因安全考量,运行此命令要求管理员
  • config.toml,域名解析规则配置
    • listenIP,EndDNS绑定地址,缺省为"0.0.0.0"
    • listenPort,EndDNS侦听端口,缺省为53
    • logLevel,日志级别,参见zap的相应信息,https://pkg.go.dev/go.uber.org/zap/zapcore?tab=doc#Level
    • partnerList,参与者的配置参数
      • partnerType,参与者类型
        • 1:域名解析器
        • 2:IP评估器
      • partnerName,参与者类型名
      • name,参与者的具体名字(注意与partnerName区别),其它地方引用时用,要求必须唯一
      • value1,2,3,参见下面具体的解析解析器与评估器说明,注意都是字符串
    • domainDefault,缺省域名解析规则,除去matchPattern,resoverList和reviewerList外的值,可以被domainList继承
      • resolverTimeout,域名解析器的解析超时,单位为毫秒
      • resolverDisableLate,是否禁用延迟解析,缺省为false,解决可能收到多个DNS回复的问题
      • reviewerTimeout,IP评估超时时间,单位为毫秒
      • cacheTimeout,本地域名Cache(只会cache A或AAAA记录),为-1禁用,大于0为秒数
      • resoverList,此规则下使用的域名解析器
      • reviewerList,此规则下使用的IP评估器
    • domainList,域名解析规则列表,包括domainDefault中所有字段,多了如下配置
      • matchPattern,域名匹配规则,此配置与nginx的location语法类似(区别:1,前缀变后缀;2,正则不区分大小写),另外正则要用单引号。非正则可以省略最后的.号
        • =,完全相同
        • ^~,优先后缀,匹配后即停止查找
        • ~*,正则匹配,顺序确定优先级
        • 缺省,后缀匹配,长度越长优先级越高

当前支持的域名解析器

  • forwarddns,就是最普通的递归DNS(支持TCP),比如阿里DNS:223.5.5.5
    • value1:服务器IP
    • value2:服务器port(缺省为53)
  • staticdns,静态映射解析器(类似于本机hosts文件)
    • value1:被映射成的IP地址
  • doh,DoH域名服务器,这个当前是实验性的
    • value1:DoH URL
    • value2:如果DoH URL中用的是域名,这里要指定相对应的IP
    • value3:是否用Get(缺省是Post)

当前支持的IP评估器

  • tcpconn,通过测试TCP建链速度来评估IP质量
    • value1:端口
  • ping,通过ICMP Ping来评估IP质量,这个不太好用,不建议使用
  • staticrv,假评估器,特殊用途。如果完全不配置测试器,EndDNS会返回收到的最先响应(而不会等reviewerTimeout超时)
    配置了假评估器,会等reviewerTimeout超时,然后按resolver的顺序选择返回结果

配置文件的位置

当前配置文件的位置是固定的,如下两处,优先级按顺序

  • 用户主目录/.enddns(及其conf目录)
  • enddns可执行文件所在目录(及其conf目录)

可参考conf目录下的相关文件使用

你可能感兴趣的:(EndDNS配置文件介绍)