The easy and secure way to share your localhost ports over Internet.
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:
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:
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.
UDP support
Now you can forward UDP ports the same as TCP. To forward a port as UDP, run the command:
You can combine forwarding TCP and UDP ports at the same time:
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:
You can forward both local ports and ports from other hosts at the same time:
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:
Then, when clients connect to your server using the command:
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:
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:
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:
Second server with ID dff3e402-8320-45bd-b4b6-6f49e697b5e6 forwards the following ports:
Then, client can connect to both of them with the following command:
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:
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:
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.
In this case, the client will not connect to any server, but will wait when server forward ports using the --to-clients option.
No port forwarding in router. No firewall rules. No dynamic DNS. Just run one command.
All traffic is encrypted with HTTPS. Exposed ports are only accessible on the recipient's localhost — invisible to the internet.
Uses standard HTTPS (port 443). Bypasses corporate firewalls, NATs, and restrictive networks. If a browser works — so does PortForward.Pro.
Get started in seconds. Binaries are statically linked — no installation, no dependencies required.
To keep the service sustainable, we apply light limits:
These limits ensure reliability for all users.
I'm Andrey Germanov, the creator. I've spent years building tools to solve real-world remote access problems — and now I need your help to scale.
Goal: $1,000/month to cover hosting costs and remove all usage limits.
When we raise for 6 months in advance, I'll immediately upgrade infrastructure and make the service unlimited for everyone.
Donate on Boosty