A lightweight yet useful proxy DNS server
Project description
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 2.7
- Twisted
- Tornado for using Tornado IOLoop(optional)
Install
Linux/Mac OS X:
$ pip install simpledns
Windows
Usage
Run sudo simpledns on your local machine. Then set your DNS server to 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
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
The MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size simpledns-0.1.4.tar.gz (64.2 kB) | File type Source | Python version None | Upload date | Hashes View |