A DNS forwarder using Shadowsocks as the server.
ShadowDNS creates a DNS server at localhost.
Experimental; use with caution.
Install
OS X:
brew install swig
git clone https://github.com/mcepl/M2Crypto
cd M2Crypto
pip3 install -r dev-requirements.txt
sudo python3 setup.py install
cd ~
sudo pip3 install shadowdns
(得到的可执行文件是ssdns,位置:/usr/local/bin/ssdns)
Windows:
Install M2Crypto (Google an M2Crypto Windows installer for your python version and install it. Might be complicated, need someone to write a help here).
easy_install pip
pip install shadowdns
Debian / Ubuntu:
apt-get install python-pip python-m2crypto
pip install shadowdns
CentOS:
yum install m2crypto python-setuptools
easy_install pip
pip install shadowdns
Usage
Create a config file 
/etc/shadowdns.json (or put it in other path). Example:{
    "server":"my_server_ip",
    "server_port":8388,
    "local_address": "127.0.0.1",
    "password":"mypassword",
    "method":"aes-256-cfb",
    "dns":"8.8.8.8"
}
Explanation of the fields:
| Name | Explanation | 
|---|---|
| server | the address your server listens | 
| server_port | server port | 
| local_address | the address your local listens | 
| password | password used for encryption | 
| method | encryption method, "aes-256-cfb" is recommended | 
| dns | DNS server to use | 
Run 
sudo ssdns -c /etc/shadowdns.json on your local machine.
Set your DNS to 127.0.0.1
from https://github.com/Long-live-shadowsocks/ShadowDNS