All Projects → FlowerWrong → ip2socks

FlowerWrong / ip2socks

Licence: other
ip flow to socks, support tun and tap.

Programming Languages

shell
77523 projects
Roff
2310 projects
c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
Makefile
30231 projects
CMake
9771 projects

Projects that are alternatives of or similar to ip2socks

Netch
A simple proxy client
Stars: ✭ 10,297 (+29320%)
Mutual labels:  socks, tun2socks
tokio-tun
Asynchronous allocation of TUN/TAP devices in Rust using tokio
Stars: ✭ 17 (-51.43%)
Mutual labels:  tap, tun
Reflow
Content-routable socks5 proxy switcher for your entire LAN.
Stars: ✭ 170 (+385.71%)
Mutual labels:  tap, socks
net-protocol
golang模拟内核协议栈 实现链路层、网络层、传输层、应用层 用户态协议栈 ,基于虚拟网卡TUN/TAP
Stars: ✭ 129 (+268.57%)
Mutual labels:  tap, tun
3proxy
3proxy - tiny free proxy server
Stars: ✭ 2,493 (+7022.86%)
Mutual labels:  socks
txm
Markdown code example tester; language-agnostic
Stars: ✭ 19 (-45.71%)
Mutual labels:  tap
cxx-tap
Test Anything Protocol (TAP) Producer for C++
Stars: ✭ 22 (-37.14%)
Mutual labels:  tap
Pummel
Socks5 Proxy HTTP/HTTPS-Flooding (cc) attack
Stars: ✭ 53 (+51.43%)
Mutual labels:  socks
TAP-Rust
Emit test results using Rust and the Test Anything Protocol (TAP)
Stars: ✭ 40 (+14.29%)
Mutual labels:  tap
KingProxy
A proxy like privoxy and antinat
Stars: ✭ 37 (+5.71%)
Mutual labels:  socks
soxy-driver
A docker networking driver that transparently tunnels docker containers TCP traffic through a proxy
Stars: ✭ 25 (-28.57%)
Mutual labels:  socks
asyncio-socks-server
A SOCKS proxy server implemented with the powerful python cooperative concurrency framework asyncio.
Stars: ✭ 154 (+340%)
Mutual labels:  socks
profext
👣 Profile Extension - A profile 🔎 search engine for accessing my all social media profile in one tap.👨‍💻👩‍. This chrome extension let's you track your profiles on any account in a single click.
Stars: ✭ 43 (+22.86%)
Mutual labels:  tap
greentunnel4jvm
Green Tunnel Alternative for JVM Languages
Stars: ✭ 15 (-57.14%)
Mutual labels:  socks
vollt
Java libraries implementing the IVOA protocol: ADQL, UWS and TAP
Stars: ✭ 21 (-40%)
Mutual labels:  tap
auto-change-tor-ip
Automatically change tor ip address over time when accessing the internet. Make it private and safe for you
Stars: ✭ 29 (-17.14%)
Mutual labels:  socks
tap-go
Test Anything Protocol for Go
Stars: ✭ 23 (-34.29%)
Mutual labels:  tap
unitest
🌎 Seamless node and browser unit testing with code coverage
Stars: ✭ 28 (-20%)
Mutual labels:  tap
tap-html
📊 an html tap reporter
Stars: ✭ 17 (-51.43%)
Mutual labels:  tap
XamarinFormsGesture
Xamarin Form Gesture Effects
Stars: ✭ 85 (+142.86%)
Mutual labels:  tap

ip2socks

Support operating system

  • OSX
  • Linux

Get start

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

Library

Know bugs

  • too many CLOSE_WAIT to socks server, see netstat -an | grep CLOSE_WAIT | wc -l
  • OSX receive data too often, eg: brew update, brew upgrade
  • if ERR_QUIC_PROTOCOL_ERROR, go to chrome://flags/ disable quic
  • ns_initparse Message too long bug
  • (libev) select: Invalid argument
  • tcp_raw_error is -14(ERR_RST): Connection reset.

TODO

  • 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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].