I am currently self hosting multiple services with Docker containers. A file server, Kiwix with Wikipedia and a PieFed instance sitting behind a Caddy reverse proxy. The PieFed instance is not federated and is more acting like a forum which is meant for a local community within a city. If I do federate in the future, it would be to whitelisted instances from within my physical local community. I am also hosting from behind a Cloudflare Tunnel since my ISP blocks incoming data on lower ports.
I was hesitant to use Cloudflare originally but decided to use it since it was the most suggested recommendation. Now that America and American companies are losing trust world wide, I’d like to explore some other options for tunneling.
Since what I am hosting isn’t really meant for a large user base, I am okay with losing some of the security offered by Cloudflare’s free tier services. I’ll probably look into setting up Fail2Ban and rate limiting to stop a single petty person but that would be something I can do at a later time.
What would be some options to look into when it comes to tunneling behind an ISP with blocked lower ports?
I recommend it every time this question pops up and I’m surprised more people aren’t privy to it:
Rent a VPS as your public gateway. Connect the VPS to your server with a simple wireguard tunnel.
The only thing on the VPS should be a reverse proxy with SSL/TLS pass through.
Send the traffic at the VPS reverse proxy to a reverse proxy on the main server. Configure this proxy to use letsencrypt certs.
The benefit and importance of the SSL pass through reverse proxy, is that it allows all data in transit to remain encrypted until it reaches your physical server. Traditionally, most would suggest the one and only reverse proxy exist on the VPS but all traffic would then be decrypted on the VPS. This could obviously compromise your traffic if the VPS provider snoops or your VPS is compromised.
Cloudflare tunnels decrypt on their hardware as well, which is why I always recommend avoiding their services.
A question I have about this setup, because I’ve been contemplating out myself: If all the traffic flows through the VPS, I presume that will count against any usage limits / cost per GB with the VPS, right? Have you found that to be a problem with large file transfers or video streaming?
Chisel, Rathole, an SSH tunnel with port forwarding, a VPN with port forwarding.
Keywords are “self hosted tunnel” or “reverse proxy over VPN”.Run a VPS for like $5 a month, your local reverse-proxy tunnels out to the VPS, and your VPS forwards port 80/443 over the tunnel to your reverse-proxy.
Rent any low cost vps and setup wireguard tunnel or ssh tunnel to it with port forward, done.
Check https://wiki.gardiol.org/ where I detail my setup which is exactly this.
This page https://wiki.gardiol.org/doku.php?id=networking%3Aexternal_access is a good starting point
Hey, man… I used to run your LineageOS on Surya until recently. Glad to see you here 😀
Cool! We just released 22.2 for surya ;)
Glad to see you here too!
Pangolin.
Only complaint is that it uses Traefik instead of Caddy.
It looks very good, and you can use crowdsec with it!
Look into a VPS + pangolin or headscale Also, check out Crowdsec
Pangolin is amazing and completely replaced cloudflare tunnels for me.
I have a cheap VPS at Infomaniak that handles a boatload of traffic with no issues whatsoever.
I run frp but I also like Pangolin
ngrok is a straightforward, powerful, and secure option. Check it out! I run it for my k8s cluster at home.