- OSX
- Linux
git clone https://github.com/FlowerWrong/ip2socks.git --recursive
# ubuntu vm
vagrant up --provider virtualbox
vagrant ssh
# build ip2socks
cmake .
make
## start ip2socks
# OSX
sudo ./ip2socks --config=./scripts/config.darwin.example.yml
# linux
sudo ./ip2socks --config=./scripts/config.linux.example.yml
- tun
- tap
- 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
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 withroute
on OSX orip route
on Linux - lwip udp hooked, redirect to upstream tcp dns server via socks 5, config with
remote_dns_server
, setup your dns toaddr
, eg10.0.0.2
- lwip udp hooked, set you dns to remote, eg:
8.8.8.8
- C++ 11
- lwip
- lwip-contrib
- libev
- libyaml
- too many
CLOSE_WAIT
to socks server, seenetstat -an | grep CLOSE_WAIT | wc -l
- OSX receive data too often, eg:
brew update
,brew upgrade
- if
ERR_QUIC_PROTOCOL_ERROR
, go tochrome://flags/
disable quic - ns_initparse
Message too long
bug - (libev) select: Invalid argument
- tcp_raw_error is -14(ERR_RST): Connection reset.
- speed statistics
- DNS cache
-
block
rule support, just close it - dnsmasq
address=/test.com/127.0.0.1
support -
domain
,domain_keyword
,domain_suffix
(ip_cidr, geoip) rule support - timeout
- log
- OSX route batch insert
- lwip
keep-alive
support - lwip
SO_REUSEADDR
support - TCP fast open with Linux kernel > 3.7.0
- socks 5 client UDP relay
- FreeBSD support
- Android support
- iOS support
- ipv6 support