Skip to content

A TCP dns proxy which can get the RIGHT ip address

Notifications You must be signed in to change notification settings

capsterx/Tcp-DNS-proxy

 
 

Repository files navigation

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
  1. restart the network
$ sudo /etc/init.d/networking restart
  1. run the script
$ sudo python tcpdns.py -f tcpdns.json.example
  1. stop the daemon process
$ sudo python tcpdns.py -s

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
  -s              Stop tcp dns proxy daemon

Configuration file

{
  "socket_timeout": 20,
  "host": "172.17.0.1",
  "port": 53,
  "dns": [
    {
      "match": ["static.host.com"],
      "resolve_to": "10.10.10.10"
    },
    {
      "match": ["one.host.com", "two.host.com", "gitlab.host.com"],
      "host": "8.8.8.8",
      "port": 53,
      "udp": true
    },
    {
      "match": ["*host.com"],
      "host": "10.10.10.1",
      "port": 53,
      "udp": false
    },
    {
      "match": "*",
      "host": "8.8.8.8",
      "port": 53,
      "udp": true
    }
  ]
}

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

  1. Install python gevent

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

    C:\Python27\Scripts\pip.exe install pyinstaller
    
  3. 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/

About

A TCP dns proxy which can get the RIGHT ip address

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 93.9%
  • Shell 5.8%
  • Batchfile 0.3%