Skip to content

Multi-threaded Reverse Proxying - Proxies TCP traffic from a port on your machine to another host & port that your machine is able to reach, where each proxy is its own NodeJS process - https://www.npmjs.com/package/quickprox

License

Notifications You must be signed in to change notification settings

joshuaquek/QuickProx

Repository files navigation

image.png

QuickProx

A simple TCP Reverse Proxy, installable globally on your machine via NPM

Proxies TCP traffic from a port on your machine to another host & port that your machine is able to reach

Underneath the hood, it uses the following npm packages - net & pm2

Quick Start

Run the following in your command-line/terminal:

sudo npm install -g pm2
npm install -g quickprox

Add a new proxy:

quickprox add 3000 10.0.0.136 8080

This routes tcp requests that reach 0.0.0.0:3000 (also localhost:3000) to be routed to 10.0.0.136:8080

You can continue adding more proxies:

quickprox add 5432 10.0.1.100 5322
quickprox add 8080 10.0.1.100 3001
quickprox add 3030 10.0.1.100 4002

For more details on how to list out proxies, delete proxies, check the status of proxies, continue reading the following sections.

Setup

Ensure that you have PM2 installed, else the tool wont work:

sudo npm install pm2 -g

Next, install quickprox:

npm install -g quickprox

Adding a TCP Proxy

Lets say you want requests that reach 0.0.0.0:3000 (also localhost:3000) to be routed to 10.0.0.136:8080:

quickprox add 3000 10.0.0.136 8080

image.png

Viewing List of TCP Proxies

To see a list of all TCP proxies that you have created:

quickprox list

Take note of the id column, that is the value you can use later when wanting to delete TCP proxies: image.png

Deleting a TCP Proxy

Using the id value from quickprox list, you can then run

quickprox delete id_here

For example, if I want to delete a proxy with id equal to 1, the I would run:

quickprox delete 1

image.png

Deleting all TCP Proxies created

quickprox delete all

image.png

Viewing Logs of TCP Proxies

To see the logs of each proxy, you can run:

quickprox status

image.png As mentioned previously, this uses PM2, and you can then see each running proxy by using the arrow keys (up/down)

Aliases

Here are a list of aliases that you can use that literally do the same thing, for flexibility's sake 🤝 :

# Creating a tcp proxy
quickprox add 8085 10.0.0.136 3003
quickprox create 8085 10.0.0.136 3003
quickprox new 8085 10.0.0.136 3003
quickprox serve 8085 10.0.0.136 3003
quickprox deploy 8085 10.0.0.136 3003

# Deleting a tcp proxy
quickprox delete 3
quickprox remove 3
quickprox kill 3

# Deleting all tcp proxies created
quickprox delete all
quickprox remove all
quickprox kill all

# Listing all tcp proxies
quickprox list
quickprox ls
quickprox ps
quickprox l

# Status of tcp proxies
quickprox status
quickprox monit
quickprox details

Credits

Some code that was used in building this: https://gist.github.com/kfox/2313683

License

MIT

About

Multi-threaded Reverse Proxying - Proxies TCP traffic from a port on your machine to another host & port that your machine is able to reach, where each proxy is its own NodeJS process - https://www.npmjs.com/package/quickprox

Topics

Resources

License

Stars

Watchers

Forks