A tool to bypass portforwarding restrictions using some cheap VServer
Find a file
2023-01-31 20:22:36 +01:00
src Initital commit 2023-01-31 20:22:36 +01:00
.gitignore Initital commit 2023-01-31 20:22:36 +01:00
Cargo.lock Initital commit 2023-01-31 20:22:36 +01:00
Cargo.toml Initital commit 2023-01-31 20:22:36 +01:00
README.md Initital commit 2023-01-31 20:22:36 +01:00

Reverse-PortForward V3

This tool bypasses port restrictions of your router using some not-very-powerful server (a cheap 1€ vserver will suffice.)


How to download it

I will provide a windows and mac build shortly. Right now, I can only provide a linux build.

All builds I make can be found in the releases.

If my build doesn't work or your system doesn't have one, install Rust and run cargo install revpfw3 or cargo install --git https://github.com/tudbut/revpfw3.


How to set it up:

  1. Buy some cheap server online, it will only need
    1. Enough disk space to run a 5MB program (I recommend about .5GB free after OS is installed)
    2. 500MB RAM or more
    3. Flexible port settings
    4. Not much CPU power
  2. Download revpfw3 to it
  3. Run it like this: revpfw3 server <port> <key> (I reocmmend doing it in a loop)
  4. Download it to your destination as well (your PC, a raspi, etc)
  5. Run it like this: revpfw3 client <ip of your bridge server> <port> localhost <port to redirect (on local machine)> <key>
  6. To restart, end BOTH processes (remote and on your local server) and restart them.

Applications and special features:

  • Minecraft servers tested and functional.
  • HTTP tested and functional.
  • Some third-party protocols tested and functional.
  • This is not an HTTP-Proxy. It will work with any TCP protocol that isn't reliant on TCPNODELAY.
  • No disconnects, even when the sockets stay open for hours.
  • Fast
  • Little ping increase in normal applications
  • A 1ms waiting delay before sending is built in to reduce stress and increase efficiency by waiting for further data.

As a rust library

Reverse-PortForward V3 supports being used as a library. revpfw3::client and revpfw3::server are public, so you can use those. Keep in mind they will panic when the connection to the corresponding client/server drops.