A TCP dns proxy which can get the RIGHT ip address
$ vi /etc/resolve.conf
nameserver 127.0.0.1
$ sudo /etc/init.d/networking restart
$ sudo python tcpdns.py -f tcpdns.json.example
$ sudo python tcpdns.py -s
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
{
"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" : 500,
"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"}
}
chmod +x ./install.sh
./install.sh
Use tcpdns.exe in win directory.
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
Pull the submodule source code.
cd Tcp-DNS-proxy
git submodule update --init --recursive
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".
Pull the submodule source code.
cd Tcp-DNS-proxy
git submodule update --init --recursive
install python 2.7.9
Install pip.exe
Download get-pip.py from get-pip.py, execute the following commands:
python get-pip.py
install greenlet
C:\Python27\Scripts\pip.exe install greenlet
install Microsoft Visual C++ Compiler for Python 2.7
Install python gevent
C:\Python27\Scripts\pip.exe install gevent
install pyinstaller
C:\Python27\Scripts\pip.exe install pyinstaller
execute toexe.bat
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/