PortForward.Pro

The easy and secure way to share your localhost ports over Internet.

Quick Start

For example, you need to share your local web server (port 80) and SSH access (port 22) with a remote colleague. Here's how:

Step 1. Run this command on your machine's terminal:

pfp --forward 80,22

Output:

$ pfp --forward 80,22

PortForward.Pro v1.0 - a secure port forwarding tool. The easy and secure way to share your localhost ports over Internet.

By continuing using this program, you agree with the PortPorward.Pro Terms Of Service on https://portforward.pro/tos.html    .
If you don't, stop using this program, exit it and remove it from your computers.

Server ID: c523f8f4-79e9-42ae-82c6-350dd4e903ad.

Exposed service on the '80' port.
Exposed service on the '22' port.
2026-01-30 11:12:29  INFO src/server.rs:60: Connecting to portal...
2026-01-30 11:12:30  INFO src/server.rs:87: Connected to portal.
Welcome to PortForward.Pro. Your Client version: 1.0, your IP: 
---
To connect to forwared ports, client must run: 'pfp --connect c523f8f4-79e9-42ae-82c6-350dd4e903ad'.

Step 2. Send the Server ID to your colleague. In this example it is c523f8f4-79e9-42ae-82c6-350dd4e903ad.

Step 3. Your colleague should run in terminal:

pfp --connect c523f8f4-79e9-42ae-82c6-350dd4e903ad

Output:

$ pfp --connect c523f8f4-79e9-42ae-82c6-350dd4e903ad

PortForward.Pro v1.0 - a secure port forwarding tool. The easy and secure way to share your localhost ports over Internet.

By continuing using this program, you agree with the PortPorward.Pro Terms Of Service on https://portforward.pro/tos.html    .
If you don't, stop using this program, exit it and remove it from your computers.

2026-01-30 11:22:24  INFO src/client.rs:62: Connecting to portal on portforward.pro:443 ...
2026-01-30 11:22:24  INFO src/client.rs:73: Connected to portal.
Client ID: 3b5e42af-f8b8-4357-939f-f8d6dd1265cd.
Welcome to PortForward.Pro. Your Client version: 1.0, your IP: 
Server port '80' is available on localhost as port '1024'
Server port '22' is available on localhost as port '1025'

Your colleague can now access your port 80 at localhost:1024 (web) and your port 22 at localhost:1025 (SSH).

That's it! Works for any TCP service — databases, IoT devices, game servers, and more.

News

2026-02-26 - Version 1.1.0 Released. In includes the following new features.

UDP support

Now you can forward UDP ports the same as TCP. To forward a port as UDP, run the command:

./pfp --forward 1234/udp

You can combine forwarding TCP and UDP ports at the same time:

./pfp --forward 22/tcp,1234/udp,80/tcp

If you do not specify either /tcp or /udp, TCP is used by default

Forward ports from other hosts

Since this version you can forward not only local ports but also ports from any other computers in your network. For example, if you have a web server, running on 192.168.1.10 address on port 80, and VNC server, running on 192.168.1.210 address on port 5900, you can forward all them from your host using the following command:

./pfp --forward 192.168.1.10:80/tcp,192.168.1.210:5900/tcp

You can forward both local ports and ports from other hosts at the same time:

./pfp --forward 22,192.168.1.10:80/tcp,192.168.1.210:5900/tcp

Forward to static ports on clients

In previous version, when you connect to server using the --connect argument, it creates a random local port for each server port, starting from 1024. Since this version, you can set static ports mapping for forwarded ports. For example, if you want to forward ports 80 and 22 to your clients, and if you want to make port 80 to be available as port 1101 on the client and port 22 as port 1204 on the client, you can run the following:

./pfp --forward 80/tcp=1101,22/tcp=1204

Then, when clients connect to your server using the command:

./pfp --connect <your-server-id>

then, they will see port 1101 as your web server on port 80 and port 1204 as your SSH server.

Also, clients can override port mappings on their end, using the --portmap command line argument. For example, if they want to connect your port 80 to port 1305 and your port 22 to port 1306, they can run:

./pfp --connect <your-server-id> --portmap 80=1305,22=1306

then, they will see port 1305 as your web server on port 80 and port 1306 as your SSH server. Client can override either all server ports, or part of them. Also, the client may disable some of your ports. For example, if clients does not want to connect to your port 80, they can write "80=no", and this port will be skipped:

./pfp --connect --portmap 80/tcp=no,22=1306

In this example, client will connect your port 22 as 1306, but do not connect the port 80.

Connect to multiple servers from a single client

Since this version, single client can connect to many servers at the same time. To do this, the client can specify comma separated list of server IDs in the --connect argument. For example, let's assume that you have two servers. First server with ID c8324a12-19fb-4256-af08-15d09c0f386e forwards the following ports:

./pfp --forward 80/tcp=1101,22/tcp=1102

Second server with ID dff3e402-8320-45bd-b4b6-6f49e697b5e6 forwards the following ports:

./pfp --forward 5000/tcp,192.168.1.210:5900/tcp

Then, client can connect to both of them with the following command:

./pfp --connect c8324a12-19fb-4256-af08-15d09c0f386e,dff3e402-8320-45bd-b4b6-6f49e697b5e6

After that, the client will have port 1101, connected to the 80/tcp port of your first server, port 1102, connected to the port 22 of your first server, some random port (like 1024) connected to the port 5000 of your second server and also, some random port (like 1025), connected to the port 5900 of the 192.168.1.210 host of your second server's network.

As with single server connection, client can redefine port mappings, using the --portmap option. In multi-server setup, the client should specify server id before each port and set the special '#' symbol after server id. Here is how to redefine all ports for previous example:

./pfp --connect c8324a12-19fb-4256-af08-15d09c0f386e,dff3e402-8320-45bd-b4b6-6f49e697b5e6 --portmap c8324a12-19fb-4256-af08-15d09c0f386e#80=1201,c8324a12-19fb-4256-af08-15d09c0f386e#22=1202, dff3e402-8320-45bd-b4b6-6f49e697b5e6#5000=1203,c8324a12-19fb-4256-af08-15d09c0f386e#192.168.1.210:5900=1204

Here the client connects ports 80 and 22 of your first server as ports 1201 and 1202, and ports 5000 and 192.168.1.210:5900 from your second server as 1203 and 1204.

Forward ports from server to client

This new feature allows to forward ports from server and connect them to client in a single command. For example this command:

./pfp --forward 80=1101,22=1102 --to-clients=c8324a12-19fb-4256-af08-15d09c0f386e,dff3e402-8320-45bd-b4b6-6f49e697b5e6

will forward ports 80 and 22 and automatically connect them on clients with specified IDs in the --to-clients option, without need to run the ./pfp --connect command on these clients. As soon as these clients available, these ports will be forwarded to them as ports 1101 and 1102.

If in a moment, when you run the server with --to-clients option, some clients are not available, the server will continue attempting to forward ports to them every 5 seconds until they available, so it's not required to run clients in advance. Also, since this version, you can run clients the following way:
./pfp --serve

In this case, the client will not connect to any server, but will wait when server forward ports using the --to-clients option.

2026-02-02 - Version 1.0.0 Released and available to download.

Benefits

⚡ Zero Setup

No port forwarding in router. No firewall rules. No dynamic DNS. Just run one command.

🔒 End-to-End Security

All traffic is encrypted with HTTPS. Exposed ports are only accessible on the recipient's localhost — invisible to the internet.

🌐 Works Everywhere

Uses standard HTTPS (port 443). Bypasses corporate firewalls, NATs, and restrictive networks. If a browser works — so does PortForward.Pro.

Download Now

Get started in seconds. Binaries are statically linked — no installation, no dependencies required.

Limits

To keep the service sustainable, we apply light limits:

These limits ensure reliability for all users.