Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A TCP dns proxy which can get the RIGHT ip address
Python Shell Batchfile
Branch: master

Update README.md

fix error
latest commit b3e6c1797b
@henices authored

README.md

Build Status

How to use this python script ?

  1. change your dns server to 127.0.0.1

    $ vi /etc/resolve.conf  
    nameserver 127.0.0.1
  2. restart the network

    $ sudo /etc/init.d/networking restart
  3. run the script

    $ sudo python tcpdns.py -f tcpdns.json

Commandline

usage: tcpdns.py [-h] -f CONFIG_JSON [-d]

TCP DNS Proxy

optional arguments:
  -h, --help      show this help message and exit
  -f CONFIG_JSON  Json config file
  -d              Print debug message

Configuration file

{
    "socket_timeout": 20,
    "host": "0.0.0.0",
    "port": 53,
    "tcp_dns_server": ["8.8.8.8:53",
                       "8.8.4.4:53",
                       "156.154.70.1:53",
                       "156.154.71.1:53",
                       "208.67.222.222:53",
                       "208.67.220.220:53",
                       "209.244.0.3:53"],
    "udp_dns_server": ["208.67.222.222:5353"],
    "enable_server_switch": true,
    "speed_test": true,
    "enable_lru_cache": true,
    "lru_cache_size"  : 100,
    "udp_mode"        : false,
    "daemon_process"  : false,
    "internal_dns_server": ["192.168.1.1:53"],
    "internal_domain": ["*intra*"],
    "private_host"    : {"*google.com": "203.117.34.162"}
}


Dependencies

libraries

python moudules

INSTALL

Super-quick installation

Linux system

  chmod +x ./install.sh
  ./install.sh

Windows system

Use tcpdns.exe in win directory.

Manual Installation

Ubuntu or Debian installation guide

  1. Use the following commands to install python modules

     sudo apt-get install libevent-dev
     sudo apt-get install python-pip
     sudo pip install gevent
     sudo pip install python-daemon
  2. Pull the submodule source code.

     cd Tcp-DNS-proxy
     git submodule update --init --recursive

Windows installation guide

In order to build gevent library you should install Visual Studio, although tcpdns.py can run perfectly without python gevent. If you cannot run "C:\Python27\Scripts\pip.exe" in the CMD, you can try "C:\Python27\python.exe -m pip".

  1. Pull the submodule source code.

     cd Tcp-DNS-proxy
     git submodule update --init --recursive
  2. install python 2.7.9

  3. Install pip.exe

    Download get-pip.py from get-pip.py, execute the following commands:

    python get-pip.py
    
  4. install greenlet

    C:\Python27\Scripts\pip.exe install greenlet
    
  5. install Microsoft Visual C++ Compiler for Python 2.7

    Download link

  6. Install python gevent

    C:\Python27\Scripts\pip.exe install gevent
    
  7. install pyinstaller

    C:\Python27\Scripts\pip.exe install pyinstaller
    
  8. execute toexe.bat

LICENSE

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Something went wrong with that request. Please try again.