一个轻量级但有用的代理dns服务器

simpledns的Python项目详细描述


https://badge.fury.io/py/simpledns.png

一个轻量级但有用的代理dns服务器,设计用于处理complicated Internet environment在中国,灵感来自ChinaDNSdnsmasq-chinadnsfqdns,由pythonTwisted提供支持。

要求

  • python 2.7版
  • 扭曲
  • 使用TORNADO IOLOOP的TORNADO(可选)

安装

  • Linux/Mac OS X:

    $ pip install simpledns
    
  • 窗口

    Download

用法

在本地计算机上运行sudo simpledns。然后将DNS服务器设置为127.0.0.1。

$ dig www.twitter.com +short
twitter.com.
199.59.149.230
199.59.148.10
199.59.150.7
199.59.150.39

注意,默认缓存生存期取决于dns应答的ttl。您可能希望使用–min ttl设置更大的ttl,以延长缓存生存期。

高级

$ simpledns -h
usage: simpledns [-h] [-b BIND_ADDR] [-p BIND_PORT]
                 [--upstream-ip UPSTREAM_IP] [--upstream-port UPSTREAM_PORT]
                 [--query-timeout QUERY_TIMEOUT] [--min-ttl MIN_TTL]
                 [--max-ttl MAX_TTL] [--cache-size CACHE_SIZE] [-t]
                 [--hosts-file HOSTS_FILE] [--dispatch-conf DISPATCH_CONF]
                 [-v {0,1,2}] [-q] [-V]

A lightweight yet useful proxy DNS server

optional arguments:
  -h, --help            show this help message and exit
  -b BIND_ADDR, --bind-addr BIND_ADDR
                        local address to listen
  -p BIND_PORT, --bind-port BIND_PORT
                        local port to listen
  --upstream-ip UPSTREAM_IP
                        upstream DNS server ip address
  --upstream-port UPSTREAM_PORT
                        upstream DNS server port
  --query-timeout QUERY_TIMEOUT
                        time before close port used for querying
  --min-ttl MIN_TTL     the minimum time a record is held in cache
  --max-ttl MAX_TTL     the maximum time a record is held in cache
  --cache-size CACHE_SIZE
                        record cache size
  -t, --tcp-server      enables TCP serving
  --hosts-file HOSTS_FILE
                        hosts file
  --dispatch-conf DISPATCH_CONF
                        URL dispatch conf file
  -v {0,1,2}, --verbosity {0,1,2}
                        output verbosity
  -q, --quiet           disable output
  -V, --version         print version number and exit

配置

配置文件位于/usr/local/etc/simpledns/dispatch.conf。

dispatch conf文件使用与Dnsmasq中相同的规则。支持“地址”和“服务器”规则。

address=/example1.com/1.1.1.1
server=/example2.com/1.1.1.2

默认调度配置文件来自dnsmasq-china-list

假IP列表文件位于/usr/local/ect/simpledns/ip list/txt。来源是ChinaDNS

待办事项

  • 配置文件支持
  • EDNS支持
  • 负缓存

许可证

麻省理工学院的执照

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是否可以基于步骤定义返回的arraylist迭代一组功能文件行   SoapUI项目执行后的java WebDriver异常   在Java中,比较int和可能为null的整数最干净的方法是什么?   java生成带有bouncy castle的dsa/elgamal密钥对,该密钥对在GPG中导入时不会出错   java JLS与Sun javac的对应关系/它们不匹配的原因   用圆除法的java大长数值   是否存在用于集合处理的Java库?   java读取txt文件。显示每行旁边的整数之和,并找出其中最大的和   java计算数组中的值之和   java正在从SharedReferences中删除对象   在项目“XXXXX”上运行生成器“Jboss知识库生成器”时出现java错误。未知标签!位置=3池计数=12   java有没有更简单的方法来编写这个equalsIgnoreCase检查链?   java无法在NetBeans中找到main   如何在Java或C中创建MAC连接?   ssl Java MTLS主体和颁发者顺序   如何在java中解组具有未知子元素的XML?   java如何使用带多FirestoreRecyclerAdapter的房间?   java如何实例化IOSDriver以在当前会话中访问其方法   java Oracle在插入后更新NCLOB   我们可以在安卓中进行下一次迭代之前,在每次迭代中创建一个for循环来获取用户输入