git clone https://github.com/FlowerWrong/ip2socks.git --recursive
# ubuntu vm
vagrant up --provider virtualbox
vagrant ssh
Compile with C++ 11 and cmake
# build ip2socks
cmake .
make
## start ip2socks# OSX
sudo ./ip2socks --config=./scripts/config.darwin.example.yml
# linux
sudo ./ip2socks --config=./scripts/config.linux.example.yml
ip mode
tun
tap
dns mode
tcp: just dns with port you set local_dns_port redirect to tcp, other flow will be try to send to remote via socks 5 udp tunnel
udp: just dns with port you set local_dns_port redirect to udp, other flow will be send to remote via socks 5 udp tunnel
There are 5 ways to setup DNS query to remote
use-vc in /etc/resolv.conf: Sets RES_USEVC in _res.options. This option forces the use of TCP for DNS resolutions.
pdnsd
lwip udp hooked, redirect to upstream tcp dns server via socks 5, config with remote_dns_server, you can just route your dns servers to tun or tap with route on OSX or ip route on Linux
lwip udp hooked, redirect to upstream tcp dns server via socks 5, config with remote_dns_server, setup your dns to addr, eg 10.0.0.2
lwip udp hooked, set you dns to remote, eg: 8.8.8.8