For folks that are unable to port forward on the local router (eg CGNAT) I made this post on doing it via a VPS. I’ve scoured the internet and didn’t find a complete guide.
Thanks for the nice write-up, saving it in case I find myself behind CGNAT in the future.
another option is to use Cloudflare’s tunnels. it’s free, I use it all the time. really great.
I’ve set up some tunnels. Works nice but then the voices came. ‘Why would you trust a company like Cloudflare with all your data?’ ‘Why rely on this one company for all your services?’
Nearly a year into my selfhosting journey and I’m more confused than ever.
tl;dr: classic convenience/privacy. depends on your threat model. surely better than Google. models of zero trust will help.
That’s a great question, that I have asked myself before too. It doesn’t have one answer, and any one would make their own choices based on their own respective threat model. I’ll answer you with some of my thoughts, and why I do use their services.
I’ll take as an example my usage of NextCloud, coming as a replacement to Google Drive for example.
let’s break up the setups:
- client (mobile app, desktop client, browser)
- communication to server
- server
It’s oversimplified, but to the point: In Google’s setup, you have control of 0 out of three things.
- you use their closed source client, 2. they decide the communication to the server (if there’s any CDN, where their servers located, TLS version), and 3. data is on their servers, wether encrypted or not is up to them.
In NextCloud’s setup,
- The clients are open source (you can varify them, or build your own),
- communication to server is up to you. and in this case you trust your data with CF, that’s right. gonna have to trust them.
- server is your server, and you encrypt the files how you want.
From just this look, NC is clearly better off. now, it’s not perfect, and each one will do their own convenience vs privacy deal and decide their deal.
If you deploy some sort of e2ee, the severity level of CF drops even more, because they’re exposed to less data. specifically for NC they do do e2ee, but each solution to its own. https://nextcloud.com/encryption/ this goes as an example for zero trust model. if you handle the encryption yourself (like using an e2ee service), you don’t have to trust the medium your data is going through. like the open internet.
Thanks. I agree with your conclusion. I probably have spent too much time in privacy communities. In the end you’ll have to trust someone.
that’s not to wear off of the importance of awareness. you should be aware always, even if you don’t take action.
surely better than Google
This contradicts your threat model comment, though. If you fear Google’s access to your data, you fear nation states, or hate Google. Cloudflare is in the same boat for size, scope, and US ownership.
Obviously I’m not avoiding it all together, but I’m taking a step in the right direction.
And it’s not just replacing Google by CF, because CF has much less access in comparison as I explain.
you can deploy some zero trust models in your setup, and eliminate the threat even further. for example end to end encryption
Oh yes, wasn’t trying to say it was a bad decision at all. If it fits your threat model, and it makes life easier, it’s probably the right choice.
Yeah it’s a popular choice for various things. But wouldn’t it be against TOS using it for p2p and that amount of traffic?
gotta admit I haven’t read the ToS, but I didn’t encounter any problems. I’m streaming GBs of music via the tunnel and it still works. p2p I didn’t try, but I don’t really see a reason to?
Just remember that Cloudflare decrypts and re-encrypts all your data, so they can read absolutely everything that passes through those tunnels.
mind elaborating?
If I let them handle the TLS for me then I can see that. but if, for example, I’m using NextCloud, which implement end to end encryption from client to server, then I wouldn’t care if they did, no?
Huh, good to know. I’m out remember some of us have traffic in the TBs pretty month!
In most environments ipv6 bypasses cgnat (because, why would you need a nat with ipv6).
Like I said ip6 is useless when it comes to torrenting. Even if the tracker supports it it’s not persavive with users connecting to you.
The general topic was about self-hosting. IPv6 is very useful for self-hosting,… connections.
I’ll admit there is a critical mass problem with torrenting clients, but if you’re trying to set up a wire guard tunnel with your friends, IPv6 is a absolute banger
Nice, I recently went through the same struggle of setting up this configuration based on that LinuxServer post. My main nitpick on this is that automating the ip route configuration for the qBittorrent container is a pretty important step which is not explained in the post. Leaving any manual steps in any Docker setup is pretty bad practice.
Since you’re using LinuxServer’s QBT image a good way to do this is to make use of their standard custom init scripts. You can just mount a script with the
ip route
commands to/custom-cont-init.d/my-routes.sh:ro
on the container and it will be run automatically on each startup.Another nitpick is that the
PostDown
commands in the wireguard configs are useless since you’re running them in Docker.Thanks for the addition. It’s also mentioned in that original blog post I linked in the article.
Yes that’s how I’m automating it, and it’s noted in the blog I highlighted. Your point about post down does make sense 😕