5 ms·
I maintain a list of solutions to this problem: https://github.com/anderspitman/awesome-tunneling https://github.com/anderspitman/awesome-tunneling. There are
by anderspitman 6y ago
I maintain a list of solutions to this problem:
https://github.com/anderspitman/awesome-tunneling https://github.com/anderspitman/awesome-tunneling.
There are a surprising number of tools that all do essentially the same thing, and it's often hard to tell how they're different from the other 30 options.
Making a really good solution to this problem has been the focus of my free time for the past month since I wrote this comment[0].
The project I'm working on:
* 100% open source and MIT licensed
* Strive for simplicity throughout. Very few dependencies. No config files, and only a single CLI parameter required to run the server.
* Clients can be remote controlled by the server, and each client can open an arbitrary number of tunnels. ie you don't have to start a separate ngrok process for each tunnel. Just set up the client on each machine you want to tunnel out of and forget about it. Everything is controlled
through a simple web UI (or REST api).
* Automate as much as possible. Tunnel creation and Let's Encrypt are already working. Eventually you'll be able to add an API token from your DNS provider and that'll be automated as well.
It's not quite ready (launch planned for 31 Oct 2020), but you can check it out here: https://boringproxy.io/ https://boringproxy.io/
[0]: https://news.ycombinator.com/item?id=24475946 https://news.ycombinator.com/item?id=24475946
- mobilio 6y agoTHANK YOU! I still miss Serveo because this was easiest tunnel solution that "just works!"
- anderspitman 6y agoIf you want a self-hosted alternative to serveo, I recommend sish (comprehensive) or my own SirTunnel (simple and minimal). If you just need ad-hoc tunnels on someone else's servers for free, I'm not sure what the leading options are. localhost.run is one. [0]: https://github.com/antoniomika/sish https://github.com/antoniomika/sish [1]: https://github.com/anderspitman/SirTunnel https://github.com/anderspitman/SirTunnel
- tommyvan 6y agoI've seen a few servo refugees recently land on my service, https://localhost.run/ https://localhost.run/ I didn't get to try serveo before it ended but I _think_ I do something similar, "ssh -R 80:localhost:8080 ssh.localhost.run" will give you an internet accessible address tunneled to localhost:8080.
- tommyvan 6y agodoes anyone know what happened to serveo BTW? As happy as i am to welcome peeps onto localhost.run it's sad to see peeps in this space disappear, especially peeps that like SSH as much as I do. I read a medium article about serveo after it disappeared that suggested you could choose your own stable subdomain. localhost.run used to work like this but I got hammered by phishing sites, almost got shut down by my registrar and my hosting provider. I wonder if that was it? Stopping phishing is, by far, the thing I've had to do the most work on.
- mobilio 6y agoServeo author is Google employee and I THINK that there was some issues that service caused to him and his job. As i said - I THINK!
- grep_name 6y agoI've had most of my personal self-hosting held up by a problem with ssh port forwarding for over a month now and am willing to re-think the whole setup at this point. Basically I have a vps running traefik and a bunch of self-hosted services with letsencrypt in a docker-compose stack, but I want it to also be able to take an ssh-forwarded https port and use ssl termination to get it a letsencrypt cert and point it to the domain I want. Apparently the way to do this is to use the traefik file provider option, but at this point I've been trying to get that to work for a month and I have no idea why traefik doesn't recognize the port. Do you have any recommendations for someone looking for this setup? As I said I'm willing to scrap my current setup, but would still like to be able to have it all run in docker-compose and not renew the certs by hand.
- anderspitman 6y agoAre you currently taking advantage of traefik's automatic mapping, or are you manually configuring it for each of your docker services? (disclaimer, I've never used traefik. Feels like too much magic for me). If you're using the auto-mapping stuff, then honestly it sounds like getting traefik to work for the SSH port is probably your best bet. Do you need it to dynamically set up new ports, or is it the type of thing you have a static set of tunnels you always want available?
- grep_name 6y agoAll of my traeffik setup with the exception of some toml for the forwarded port file-descriptor thing are handled in the labels of my docker-compose file. I'm not totally sure if that means I'm using automatic mapping or not, but I do explicitly tell it which ports should be exposed and which domain they should route to (all my language about this is pretty fuzzy since I haven't looked at it in awhile). I don't need to dynamically set up the new ports really. I just have a shell script on the server that forwards the ports using ssh forwarding, and those ports probably won't ever change. Have you done something similar with an alternative tool? It wouldn't break my heart to migrate from traefik to something else, although I do REALLY appreciate how it integrates into docker-compose and how easy it makes letsencrypt cert creation / renewal (I didn't really like the nginx solutions I was seeing for letsencrypt)