Need help with SimpleDNS?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

skyline75489
194 Stars 48 Forks MIT License 92 Commits 0 Opened issues

Description

A lightweight yet useful proxy DNS server powered by Python Twisted

Services available

!
?

Need anything else?

Contributors list

No Data

SimpleDNS

.. image:: https://badge.fury.io/py/simpledns.png :target: http://badge.fury.io/py/simpledns

A lightweight yet useful proxy DNS server designed to cope with

complicated Internet environment 
__ in China, inspired by
ChinaDNS 
__ ,
dnsmasq-chinadns 
__ and
fqdns 
, powered by Python
Twisted 
.

Requirement

  • Python 3.4
  • Twisted
  • Tornado for using Tornado IOLoop(optional)

Install

  • Linux/Mac OS X::

    Clone this project

    $ sudo python setup.py install

Usage

Run

sudo simpledns
on your local machine. Then set your DNS server to 127.0.0.1.

::

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

Note that the default cache lifetime depends on the ttl of DNS answer. You may want to set a larger ttl using --min-ttl to extend the cache lifetime.

Advanced

::

$ 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

Configuration

Configuration file is at /usr/local/etc/simpledns/dispatch.conf.

Dispatch conf file uses the same rule as in

Dnsmasq 
__. 'Address' and 'Server' rules are supported.

::

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

Default dispatch conf file is from

dnsmasq-china-list 
__.

Fake ip list file is at /usr/local/ect/simpledns/iplist/txt. The source is

ChinaDNS 
__.

TODO

  • Config file support
  • EDNS support
  • Negative caching

License

MIT License

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.