Skip to main content

Web3 Pi tunnel - a basic tcp reverse tunnel

Project description

WEb3Pi Tunnel

PoC Python implementation of a basic TCP tunnel. Primary purpose: provide a public IP to clients behind NATs.

It was initially developed alongside the Web3Pi Proxy. There are two parts of the tunnel: the server which accepts connections from external users and forwards to the client, and the client which forwards connections further to a target service.

Configure and Run

Setup

Simply install web3pi-tunnel package using your Python package manager, using pip for example:

pip install web3pi-tunnel

Configuration

Create the .env file or set the system environments with the following entries.

Server

  • SERVICE_PUBLIC_IP - the network address of the tunnel server
  • SERVICE_PUBLIC_LISTEN_PORT - the port of tunnel server for external web3 users
  • TUNNEL_ESTABLISH_PORT - the port of the tunnel server for the tunnel client
  • PROXY_ESTABLISH_PORT - the port of the tunnel server for stats
  • TUNNEL_SERVICE_AUTH_KEY - the api key to authenticate the tunnel client, any random character string
  • USE_UPNP - should the tunnel server use UPnP for the service, default value is False, may be set to True, optional

The example of the .env file

SERVICE_PUBLIC_IP=127.0.0.1
SERVICE_PUBLIC_LISTEN_PORT=6512
TUNNEL_ESTABLISH_PORT=7634
PROXY_ESTABLISH_PORT=7835
TUNNEL_SERVICE_AUTH_KEY=aaa

Client

  • TUNNEL_SERVICE_HOST - the network address of the tunnel server
  • CLIENT_SERVICE_HOST - the network address of the client target service
  • CLIENT_SERVICE_PORT - the port of the client target service
  • TUNNEL_ESTABLISH_PORT - the port of the tunnel server
  • TUNNEL_SERVICE_AUTH_KEY - the api key to authenticate the tunnel client, any random character string

The example of the .env file

TUNNEL_SERVICE_HOST=127.0.0.1
CLIENT_SERVICE_HOST=127.0.0.1
CLIENT_SERVICE_PORT=8545
TUNNEL_ESTABLISH_PORT=7634
TUNNEL_SERVICE_AUTH_KEY=aaa

Run

Server

Execute the command

web3pi_tunnel_server

Client

Execute the command

web3pi_tunnel_client

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

web3pi_tunnel-0.1.tar.gz (22.2 kB view hashes)

Uploaded Source

Built Distribution

web3pi_tunnel-0.1-py3-none-any.whl (29.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page