2023-01-31 19:57:49 +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.)
|
|
|
|
|
2023-10-03 02:16:02 +02:00
|
|
|
NEW: Modem support! RevPFW3 can now interact with modems using AT commands. A demo
|
2023-10-05 02:26:56 +02:00
|
|
|
is included for some simcom modems.
|
2023-10-03 02:16:02 +02:00
|
|
|
|
2023-01-31 19:57:49 +01:00
|
|
|
---
|
|
|
|
|
|
|
|
### 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](https://github.com/tudbut/revpfw3/releases/latest).
|
|
|
|
|
|
|
|
If my build doesn't work or your system doesn't have one, [install
|
|
|
|
Rust](https://rustup.rs) 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)
|
2023-02-05 03:22:35 +01:00
|
|
|
2. 50MB of free RAM or more (if you expect to have many clients connecting,
|
|
|
|
use more RAM)
|
2023-01-31 19:57:49 +01:00
|
|
|
3. Flexible port settings
|
2023-02-05 03:22:35 +01:00
|
|
|
4. Not much CPU power, a single core definitely suffices.
|
2023-01-31 19:57:49 +01:00
|
|
|
2. Download revpfw3 to it
|
2023-02-01 20:19:56 +01:00
|
|
|
3. Run it like this: `revpfw3 server <port> <key>` (I recommend doing it in a
|
2023-01-31 19:57:49 +01:00
|
|
|
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.
|
|
|
|
|