Share a local port using

Create a public URL for a local service, no worries about firewall, NAT, etc..

Sometimes it is very useful to share a local port in your computer to the Internet

It is a free service that allow an user to share local URL as a public available URL.

For example:

$ PORT=8080 ./yourapp &
Serving on port 8080 ...
$ ssh -R 80:localhost:8080
Connect to or

This allows a user to access a service running in your computer on port 80

  • link to the project:

How does it works

It uses the SSH protocol to forward the requests made the the public URL to the configured local port.

-R port:host:hostport
             Specifies that connections to the given TCP port or Unix socket
             on the remote (server) host are to be forwarded to the local

This way, then doing this:

ssh -R 80:localhost:80

Requests to this public URL will be forwarded to the given local port

To share a different local port you can change localhost:80 to localhost:4000

ssh -R 80:localhost:4000

this way, conections will be forwarded to port 4000 on localhost

You can even allow a connection to another host on your network. Do not worry about firewall or NAT/port forwarding.

ssh -R 80:otherhost:80

To generate a custom public URL you can use a different username on the ssh connection:

ssh -R 80:localhost:4000

This way, the generated URL will be: (if no one is using this username already)

Use Cases

Allow access to a service listening on

I think this is the default use case for this service, I usually use it to access some unpublished pages of this blog on my phone

Since the bundle exec jekyll serve command will listen on

I could’n access it from my phone, even on the same network.

I can change jekyll configuration to listen on, but I still need to be in the same network. (if my phone is using mobile data it won’t work)

Testing a webhook in a local environment

When testing a webhook, it is useful to get the requests on your local machine

This can be a bit hard when working in closed networks, with private IP ranges.

With you can create a public URL to your local development project.

Share a local file

You can also use this service to share local files over the Internet.

With the default nginx instalation you can put some files on the webserver root folder:

rafael@tyr:/var/www/html$ cat test.txt 
This is a test document.

rafael@tyr:/var/www/html$ sudo service nginx start 
rafael@tyr:/var/www/html$ ssh -R 80:localhost:80 
Connect to or

In another machine:

rafael@tyr:~$ curl
This is a test document.

Now you can access these files anywhere:

© 2024. All rights reserved.

Powered by Hydejack v8.4.0