V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
pcmid
V2EX  ›  分享创造

迫于透明代理,写了一个 dns 分流的东西

  •  
  •   pcmid · 2020-04-14 18:01:21 +08:00 · 809 次点击
    这是一个创建于 1444 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址 mdns

    本项目受 overture 启发

    之前苦于透明代理需要拉 ip 段,和域名列表是分开的,感觉很不清蒸( 。就写了一个这样东西,将 dns 查询到的结果自动加入 ipset 中。

    mdns

    一个支持插件的 dns 代理工具

    配置

    {
      "addr": ":53",
      "upstream": {
        "name": "Google DNS",
        "address": "8.8.8.8:53",
        "protocol": "tcp",
        "socks5_address": "127.0.0.1:1080",
        "timeout": 6
      },
      "plugins": [
        {
          "name": "log",
          "config": {
            "log_file": ""
          }
        },
        {
          "name": "cache",
          "config": {
            "capacity": 1024,
            "MTTL": 3600
          }
        },
        {
          "name": "dispatcher",
          "config": {
            "areas": {
              "TEST": {
                "upstream": {
                  "name": "114 DNS",
                  "address": "114.114.114.114:53",
                  "protocol": "udp",
                  "socks5_address": "",
                  "timeout": 6
                },
                "domain_file": "config.sample.d/domain_test.txt"
              }
            }
          }
        },
        {
          "name": "ipset",
          "config": {
            "sets": {
              "TEST": {
                "domain_file": "config.sample.d/domain_test.txt",
                "ip_file": "config.sample.d/ip_test.txt"
              }
            }
          }
        }
      ]
    }
    
    
    • addr: 监听地址
    • upstream: 上游
      • name: 名称
      • address: 地址
      • protocol: 协议, 支持udp,tcp,tcp-tls
      • socks5_address: 代理,留空为不启用
    • plugins: 开启的插件及其配置,name 为空表示不开启

    插件

    log

    支持简单的查询日志记录

    cache

    缓存 最大缓存数量capacity和最小 ttl MTTL

    dispatcher

    分流器,通过匹配domain_file执行分流策略,选择不同的上游

    ipset

    根据domain_file将查询到的 ip 插入 ipset 中,暂未支持ip_file

    1 条回复    2020-04-15 09:35:10 +08:00
    missdeer
        1
    missdeer  
       2020-04-15 09:35:10 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1063 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:59 · PVG 02:59 · LAX 11:59 · JFK 14:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.