NewWeb Debugger in the Dashboard

Public URLs for Localhost.

Without downloading any binary!

Create HTTP, TCP, UDP, or TLS tunnels to your Mac/PC. Even if it is sitting behind firewalls and NATs.
Free persistent URL for 7 days & custom domain support
Please enter a valid email

Configure your free tunnel

Web Debugger
QR Code
Enter "yes" to continue connecting. Enter blank password if prompted.
Default Web Debugger URL: http://localhost:4300
Docs
bash · pinggy tunnel localhost:3000

Quickest way to

Quickstarts All guides
Share

Share your websites and apps in seconds.

  • Skip uploading to the cloud.
  • No tool to download.
  • Link your own domain.
  • Basic authentication built in.
Video: How to share a local app 1:51
Debug

Debug on the go.

The Web Debugger is now built into the Pinggy Dashboard. Inspect, modify, and replay your tunnel traffic right in the browser.

  • Inspect HTTP / HTTPS requests live.
  • No tool to download.
  • Replay any request.
Web Debugger dashboard.pinggy.io
Pinggy web debugger screenshot
Terminal UI

Rich terminal interface.

  • Live request logs.
  • View request and response headers.
  • Stats on bandwidth and more.
Pinggy terminal UI
How it works

Secure tunnels to your private network.

Your machine opens one outbound, encrypted connection to Pinggy, and clients reach it through a public address. No port forwarding, no firewall changes. Pick a tunnel type to see how the traffic flows.

Tunnel topology ssh -p 443 -R0:localhost:8080 free.pinggy.iossh -p 443 -R0:localhost:22 tcp@free.pinggy.iossh -p 443 -R0:localhost:443 tls@free.pinggy.iopinggy -p 443 -R0:localhost:19132 udp@free.pinggy.io
Pinggy tunnel diagramYour machine opens an outbound, encrypted tunnel to the Pinggy edge, and clients on the internet reach it through a public address. The selected tunnel type decides how traffic crosses the edge.PRIVATE NETWORKYour machinePINGGY EDGEPinggy*.a.pinggy.linkINTERNETlocalhost:8080Your usersbrowsers, appslocalhost:22Your clientsssh, psql, rdplocalhost:443Your clientsTLS on port 443localhost:19132Your clientsgames, VoIP, DNSssh:443https:443behind NAT or firewallno port forwardingterminates TLSauth, web debuggerany browser or appno install neededencrypted: HTTPS, then SSHssh:443tcp:40527SSH, database, RDPbehind NAT or firewallpublic TCP portIP whitelistbytes pass as isconnect to host:portencrypted SSH tunnelyour bytes, as isssh:443tls:443holds the certificateterminates TLSroutes by SNInever decryptsencrypted end to endno port in the URLencrypted end to endcli:443udp:43210game, VoIP, DNS serverruns the Pinggy CLIpublic UDP portforwards datagramsany UDP clientsend to host:portencrypted tunnel (CLI)your datagrams, as is Pinggy tunnel diagramYour machine opens an outbound, encrypted tunnel to the Pinggy edge, and clients on the internet reach it through a public address. The selected tunnel type decides how traffic crosses the edge.PRIVATE NETWORKYour machinePINGGY EDGEPinggy*.a.pinggy.linkINTERNETlocalhost:8080behind NAT or firewallterminates TLS, debuggerYour usersbrowsers, appsany browser, no installlocalhost:22SSH, database or RDPpublic TCP portYour clientsssh, psql, rdpbytes pass through as islocalhost:443holds the certificateroutes by SNI, never decryptsYour clientsTLS on port 443encrypted end to endlocalhost:19132runs the Pinggy CLIpublic UDP portYour clientsgames, VoIP, DNSgames, VoIP, DNS clientsssh :443https :443encrypted: HTTPS, then SSHssh :443tcp :40527encrypted SSH tunnelyour bytes, as isssh :443tls :443encrypted end to endcli :443udp :43210encrypted tunnel (CLI)your datagrams, as is

Visitors get an https:// URL. Pinggy terminates TLS with a certificate it issues for that URL, then sends each request down the encrypted SSH tunnel to localhost:8080.

Clients connect to a public TCP port. Pinggy forwards the bytes as they are through the encrypted SSH tunnel, so protocols with their own encryption, like SSH or a database over TLS, stay encrypted end to end.

Pinggy reads only the hostname (SNI) to route the connection and never decrypts it. Your server holds the certificate, so traffic stays encrypted from the client all the way to localhost:443.

Datagrams sent to a public UDP port travel through the encrypted tunnel opened by the Pinggy CLI to localhost:19132. UDP tunnels need the CLI, since plain SSH only carries TCP.

Apps

Easy to use apps

Desktop App

  • Available for Windows, Mac, and Linux
  • Easy to use GUI to manage your tunnels
  • Auto start tunnels on boot
Learn more

Command Line App

  • Robust auto reconnection
  • JSON configuration
Learn more
Pinggy App Windows / macOS / Linux Pinggy desktop app screenshot
Features

Everything you need to ship and debug tunnels.

01

No downloads

Runs everywhere

  • Windows
  • Mac
  • Linux
  • Docker
02

Multiple Protocols

  • HTTPS tunnels with built-in Let's Encrypt certificates.
  • TCP tunnels for other applications.
  • UDP tunnels.
  • TLS tunnels for end-to-end encryption.
03

Instant Domains

  • Subdomain: custom persistent subdomains.
  • Custom domain: bring your own with built-in HTTPS.
  • Wildcard domains: *.yourdomain.com routes different subdomains to different ports.
04

Access Control

  • Password authentication with HTTP Basic auth.
  • Bearer token / key based authentication.
  • IP whitelisting for restricted access.
05

Inspect & Debug

  • Live debugger: inspect HTTP requests, responses, and headers on the fly.
  • Header manipulation: change HTTP request headers before they reach your server.
06

Multiple Regions

Fast tunnels worldwide

  • USA
  • Europe
  • Asia
  • Brazil
  • Australia
Pricing

Subscribe to the easiest localhost tunneling.

Make your development experience smoother by unlocking the full potential of Pinggy.

Save up to 17%

Free

0/month

Free for life

  • Single command tunneling
  • HTTP(S), TCP, UDP, TLS tunnels
  • Live header manipulation
  • Request-response inspection & replays
  • 60 minutes tunnel timeout
  • 1 Pinggy Device with a remote terminal
  • Random subdomains
  • Unlimited Data Transfer
Go to dashboard

Enterprise

Custom

For teams that need dedicated infrastructure

contact@pinggy.io
  • Dedicated Servers / On Premise
  • Unlimited persistent tunnels
  • Unlimited custom subdomains
  • Unlimited custom domains
  • Unlimited persistent TCP/UDP ports
  • Unlimited Teams
  • API to monitor and manage tunnels
  • Unlimited Pinggy Devices and terminals
  • Priority Discord & Call Support
Contact Sales

Frequently Asked Questions

If the ssh command prompts you for a password you can just press enter (a blank password). Or you can type in something random and press enter.

For long running tunnels with auto-reconnect, generate an ssh key.
In your terminal / command prompt run: ssh-keygen
Press Enter key (Return key) till the command finishes.
After this the ssh command will no longer ask for a password.

In windows, sometimes, the ssh tunnel cannot reach localhost because of some bug in the ssh client. Replace localhost with 127.0.0.1 in your Pinggy command.

Example:

ssh -p 443 -R0:127.0.0.1:8000 -L4300:127.0.0.1:4300 qr@free.pinggy.io

Pinggy relies on SSH remote port forwarding. The option -R 0:localhost:8000 in the command only implies that connections to the public URL given by pinggy are forwarded to your localhost:8000.

No other port than the one specified by you can be accessed by Pinggy or by anyone through the public URLs provided by Pinggy.

You can read more about the -R option of openssh client here. If you are using a different ssh client, then refer to its documentation.

free.pinggy.io is routed to the Pinggy server nearest to your location. Currently we have our servers in USA, Europe, UK, Singapore, Brazil, and Australia.

Pinggy's free plan has a tunnel timeout of 60 minutes. If the tunnel is closed by you or reaches the time limit, starting a new tunnel will generate a new URL.

To obtain a permanent or persistent URL, or to use your own domain, you must subscribe to Pinggy Pro.

Yes. Current versions of Windows, Mac, as well as almost all Linux distributions come with openssh client pre-installed. Therefore Pinggy will just work out of the box.

To learn more about using Pinggy on Android read our blog post.

You can use TCP and TLS tunnels for free with Pinggy. Click on "Advanced Settings" on the top of the homepage, and select TCP.

Read our guide on long running tunnels here.

Pinggy automatically renews certificates if it finds the opportunity when the tunnel is not active. However, still if certificate has expired, it can be renewed manually from https://dashboard.pinggy.io/domains . Click on the edit icon on the domain, and click Custom Domain tab.

Make sure you do not add any arbitrary argument after the SSH command.

One common reason for this is that an existing tunnel with the same token is active.

Terminate your existing tunnel with the same token. You can do so from the Active Tunnels option in the dashboard.

You can also use the Force option in the dashbaord.

Pinggy does read tunnel traffic for providing the Web Debugger feature.

Use TLS tunnels for Zero trust mode, where Pinggy cannot read your data. In this case your traffic is end-to-end encrypted.

Share localhost in one command.No signup. No download.