Code Monkey home page Code Monkey logo

vpnchains

About

Allows to intercept child proccesses' connect() calls (see LD_PRELOAD) and de facto connect via wireguard tunnel. Implemented with the use of gvisor netstack and wireguard-go (that is implemented with the former library).

How to install

First of all, install libbson (mongo-db-driver). Most likely, it exists in official repos of your Linux distribution.
Secondly, run install.sh script; this one will check if libbson includes exist in /usr/include directory and compile and move library in /usr/lib/libvpnchains_inject.so. The executable will be located at build/vpnchains.

How to use

!!! Command args have priority over environment variables, and environment variables have priority over default values!

  • If the port for the IPC server is neither specified in flag `` nor in the environment variable VPNCHAINS_IPC_SERVER_PORT port 45454 will be used. Has to be specified explicitly for more than one vpnchains instance.
  • If the path to the intercepting library is neither specified in flag -lib-path nor in the environment variable VPNCHAINS_INJECT_LIB_PATH path /usr/lib/libvpnchains_inject.so will be used.
  • If the default size of the buffer used for reading from sockets is neither specified in flag -buf nor in the environment variable VPNCHAINS_BUF_SIZE an amount of 65536 will be used.
  • If the default mtu for the wireguard tunnel is neither specified in flag -mtu nor in the environment variable VPNCHAINS_MTU an amount of 1420 will be used.
  • If the default path to the wireguard config is not specified in flag -config than relative path wg0.conf will be used.

Supported OS

Arch Linux, kernel 6.4.7-arch1-1; probably Ubuntu 22.04; everything else (Linux and *unix) may have some installation issues, but should work

Apps that are guaranteed to work

  • wget
  • curl
  • traceroute –tcp
  • pacman
  • apt
  • snap
  • git
  • firefox
  • chromium
  • nslookup -vc
  • dig +tcp (???)
  • probably all other apps using TCP connections

Apps that won't work

  • quic (because of UDP)
  • nslookup (because of UDP)
  • anything else non-TCP

vpnchains's Projects

openvpn icon openvpn

A minimalistic OpenVPN implementation in Go

vpnchains-openvpn icon vpnchains-openvpn

an utility that allows connecting through wireguard tunnel for several processes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.