top | item 4311622

Localtunnel: Show localhost to the rest of the world

135 points| rohshall | 13 years ago |progrium.com

55 comments

order
[+] progrium|13 years ago|reply
The one day I get bored and check Hacker News, localtunnel is again on the front page. I'm really happy people appreciate it and people keep discovering it. I just want to apologize for neglecting it for so long. People continue to use it despite a few bugs that I've never addressed.

When I get back from vacation, I'm going to focus on releasing v2, which has been in the works for a while. It will continue to be a free service supported by me and hopefully someday the community. Twilio is mentioned, but only because I worked for them recently. Their designer also threw together the website design.

I also want to point out that with version 2 coming out, I'd love input on how to cultivate more community involvement and contributions. I want localtunnel to live for as long as people want to use it, but I will probably move on from it much sooner.

Anyway, thanks again!

[+] rmanalan|13 years ago|reply
Thanks for building this. I use this all the time.
[+] krenoten|13 years ago|reply
In case you want to access localhost on a server you're working remotely on, and would rather show localhost to your local machine than the world:

$ ssh -N <user>@<yourserver> -L <localport>/localhost/<serverport>

so if I'm bob at bobsbookwonderland.com, and I run a test server there on its localhost 5000 that I want to access from home, I'd type (from home):

$ ssh -N [email protected] -L 5000/localhost/5000

and then on my local machine I'd just point my web browser to localhost:5000 as if I were running the test server locally.

[+] veyron|13 years ago|reply
The right way to do it is:

    $ ssh -N -L <localport>:localhost:<serverport> <user>@<yourserver>
and

    $ ssh -N -L 5000:localhost:5000 [email protected] 

(the : is standard syntax used on platforms, including OSX and PuTTY, and some platforms don't support getopt arguments after the first non-flag argument)
[+] simonw|13 years ago|reply
"gem install X" never, ever works for me on the first try (on OS X AND on Ubuntu, as someone who rarely does any Ruby hacking). I wish packages like this would include a link to somewhere that helps troubleshoot things when they go wrong.

Last time I used localtunnel I eventually figured out I needed to run "sudo apt-get install ruby1.9.1-dev" first.

[+] ZoFreX|13 years ago|reply
I used to be an occasional Ruby user and it was only after I started using it more often that I got the hang of things. I can give you a "pro tip", which is to never, ever use the Ruby provided by your distro, and to always use RVM. Getting RVM running on OS X and Ubuntu should be smooth sailing, and you'll find that installing gems just works after that.

The only caveat is that some gems require compilation of native C extensions, which if you don't regularly compile things on your machine may require you to install lots of extra stuff (especially on the Mac).

[+] lukeholder|13 years ago|reply
well yeah you need ruby to run a ruby gem?
[+] ericcholis|13 years ago|reply
Strange that you mention this, because it ALWAYS works for me on my Windows machine. Kind of nice to be on the other side of the fence for a change....
[+] heretohelp|13 years ago|reply
It's about the same for Pythonistas, but I think I generally have less trouble with Python packages than Ruby packages.
[+] vidar|13 years ago|reply
http://pagekite.net/ is a great alternative (Python based)
[+] HerraBRE|13 years ago|reply
Author of PageKite here - funny to see this reposted yet again. :-) In case anyone has any comments/questions/... we're listening.

Also, if you haven't checked out PageKite in a while, the most recent 0.5 release fixes a lot of minor issues the older versions had, it may be worth another look, especially if folks are using Windows or aren't based in "the west" (we recently deployed a relay server in Asia, in addition to our American and European relays).

[+] lukeholder|13 years ago|reply
great service, although it has been posted before.

The popular alternative was https://showoff.io but this is a payed service. I believe local tunnel is free because it is sponsored by twilio.

I also recommend http://xip.io for sharing within the same network.

[+] tomjakubowski|13 years ago|reply
Could this be used to tunnel something other than HTTP?
[+] HerraBRE|13 years ago|reply
I don't think Localtunnel can, but PageKite will carry any TCP stream as long as the client knows how to prefix its request with an HTTP CONNECT preamble. This has mostly proven popular for remote administration via. SSH, since most SSH clients can easily be configured to take advantage of this: http://pagekite.net/wiki/Howto/SshOverPageKite/

We are also quite open to the idea of supporting other protocols, but it turns out relatively few Internet protocols are amenable to "name based virtual routing" (the same thing as name based virtual hosting, except routing connection streams by name instead of serving local content).

[+] darkstalker|13 years ago|reply
What's the difference between this and opening a port in your router?
[+] karolist|13 years ago|reply
I think this is targeted at users who don't have the ability to forward ports on their routers.
[+] unknown|13 years ago|reply

[deleted]

[+] karolist|13 years ago|reply
This service exposes your local port to the internet without the need to forward ports (which could get hairy quickly if you're behind multiple NAT layers), I don't see how it's related to serving directory contents through inbuilt python web server that you mention.