Tunnel a local webserver to the Internet
Today at work I needed to test a locally installed webapp in a mobile browser. But our WiFi has no access to the local LAN for security reasons. The only way to access the Apache on my localhost would have been to try getting the VPN work on my phone. Too much hassle. Configuring firewall rules to have an exception for my host would have meant bothering our admin during his vacation. So that was out, too.
So what to do? Using a SSH Tunnel of course!
Here is what you need:
- find a server with a public internet address (I used my own, eg. the one serving this website to you)
- make sure it's firewall allows access to an unused port, eg.
- add the option
GatewayPorts yesto your
/etc/ssh/sshd_configand reload your SSH daemon1)
Got it so far? Then all you need to do on your local machine is running the following command:
ssh email@example.com -R *:9999:localhost:80
Now you can reach your local web server on a public address. In the example above at
PS. a few weeks ago I read about a web service offering kind of the same thing. You just had to run a small utility provided by them and then could connect to one of their subdomains. Unfortunately I didn't bookmark it and now can't find it anymore. If anyone knows it, please let me know in the comments.