Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


A DNS forwarder using Shadowsocks as the server

Subscribe to updates I use ShadowDNS

Statistics on ShadowDNS

Number of watchers on Github 242
Number of open issues 2
Main language Python
Open pull requests 0+
Closed pull requests 0+
Last commit over 5 years ago
Repo Created over 5 years ago
Repo Last Updated over 1 year ago
Size 207 KB
Organization / Authorshadowsocks
Page Updated
Do you use ShadowDNS? Leave a review!
View open issues (2)
View ShadowDNS activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating ShadowDNS for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


PyPI version Build Status

A DNS forwarder using Shadowsocks as the server.

ShadowDNS creates a DNS server at localhost.

Experimental; use with caution.



brew install swig
git clone
cd M2Crypto
pip install .
pip install shadowdns


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


yum install m2crypto python-setuptools
easy_install pip
pip install shadowdns


Create a config file /etc/shadowdns.json (or put it in other path). Example:

    "local_address": "",

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



Bugs and Issues

Please visit Issue Tracker

Mailing list:

ShadowDNS list of languages used
Other projects in Python