Tunnelmole – give your local servers a public URL
github.com
github.com
[1] https://github.com/ziolko/tunnel
Edit: The nice thing about this is that it allows you to proxy to any any target port including e.g. standard email ports. This was very helpful while I was working locally on a custom email server.
This looks promising! We were also considering to build tunnelling support in our desktop app. Definitely going to explore your DIY tool, thanks for sharing.
It uses SSH as the method of opening the remote tunnel to the public server.
Also, for local setup, this still require to have a port mapping at router level, I assume?
Various steps can be elided; I've got a "proxy" that basically just blindly forwards everything, but it is based on an HTTP library and the request and response is fully parsed, even though the policy applied is very light. Various optimizations can be used to avoid expensive disassembly/reassembly, etc.
A tunnel simply shovels the bytes along, and can thus only apply policies based on TCP-level metadata like source and destination IP. A tunnel does not realize you're shoving "GET / HTTP/1.1" or anything else down it, it just moves it along.
Forstalling the inevitable "but what about..."s, this is definitely in that category of things that seems completely separated at 10,000 feet but the closer you get the fuzzier the lines get. Literally anything you can imagine that is technically possible has probably been done. For instance, a "TLS tunnel" is off the shelf tech nowadays; it takes apart the TLS layer of the connection and may apply policy to that, but the socket connection within the TLS tunnel is blindly sent along to the target (possibly itself a TLS connection), thus being simultaneously both a tunnel and a reverse proxy. I can think of at least three other similar things that are both tunnels and proxies, depending on which aspect of them you focus on, off the top of my head, and could list more if I sat down and starting writing it down. Down in the trenches these things are all mixed and matched in all sorts of ways. So in my personal opinion, getting really fussy about the nitty-gritty of the definitions is not terribly useful; there is no sharp line to be found anywhere here. What is useful is understanding that these are primitives that are available to you as you construct solutions, and that they can be assembled into interesting higher-level structures.
But that's at least the basic understanding.
There are quite a few of these out there. ngrok (very popular) and Svix Play (ours) come to mind, but I've also seen a few Show HNs in the last few months. What's your biggest differentiator to existing solutions? Not saying that one is needed (hacking for the sake of hacking is great), just wondering if there's something we need to add to ours. :P
Gives you tunnels with one command, no need to even download anything.
Full disclosure: I have created https://pinggy.io :)
tmole 80 "^/webhooks/?$"