- For my first goal, I want to get around my ISP’s CGNAT so I can access my NAS outside my network. Tailscale doesn’t work. Attempting to access my NAS always goes through their relays. From what I’ve gathered, a VPS is a good way to get around this so I got the basic $1/mo Racknerd KVM VPS. I’d like a performant way to manage this with low latency being ideal. That is my primary goal. From what I’ve researched, wireguard would be the most performant way to make that connection. I’d like to be able to access my NAS’s primary IP or even set up reverse proxies so I can access it from outside the network, without sending all my network traffic through the NAS. I was under the impression tailscale did this but for some reason when I have tailscale active on my macbook, speedtests show major lag over 100ms.
- I’ve heard wireguard was the most performant but anything will do with the goal of accessing my NAS. The maximum I need is to be able to stream 4k hdr/dolby atmos content from my NAS.
- My second goal is to set up Unbound, Blocky and maybe have a fallback to quad9. I’d also like my devices to be able to use this externally. I set up a basic version of this today using this guide. However upon more investigation, I’ve learned Blocky causes much less latency than pihole. I went down a rabbit hole, researching nextdns, dnsfilter, etc. I think Blocky and Unbound will be great, but I’m more interested in the goal than the technology used to get there. I’m primarily interested in a low latency content/ad/tracker/malicious blocker that’s available on and off my network.
- Would it introduce less latency to run this locally off my NAS, and have a separate version set up in the cloud for when I’m away from home? I’ll happily do this if there’s any tangible benefit. My routing setup is ISP modem/router -> asus zenwifi router-> 10g switch, then my PC and NAS. All connected by cable.
- Is there a way to set this up with the primary goal of having external access to my NAS? I feel like there’s a way to kill two birds with one stone with this. Like maybe having the DNS resolve my NAS’s internal IP to the VPS external IP which will then forward traffic requesting that IP address to the NAS somehow (not sure how exactly to accomplish this, or if it’s possible).
- I set this up originally on GCP due the guide I followed mentioning performance benefits. I’d be willing to host all this on the VPS if that’s possible, but would prioritize high availability, reliability and low latency, which I believe GCP would give me better than my budget VPS. Strangely, the latency when connected to the current setup, GRC DNS benchmark is showing 100+ ms latency, while with it deactivated I get about 50ms average.
- My third and kinda stretch goal is to host my website and side projects with the help of the VPS since I’ll most likely not be using all the storage, bandwidth or computing power from just my primary and secondary goals. I currently host using github pages and redirect to my domain using cloudflare. I had my projects hosted on heroku. It seems like there’s a heroku free tier popping up and then quickly enshittifying every other week so it just seems more reliable to host it myself.
- It goes without saying that I’d like to have this be as secure as possible as I’ve read lots of self hosting horror stories. My priorities are security, cost, reliability, performance in that order. I think hosting unbound/blocky on the VPS would make for a more elegant and easy to maintain solution, but I’m not 100% sure of the reliability and performance of Racknerd’s budget level VPS offerings.
- So to retierate, I’d like to access my NAS which is behind a CGNAT externally, set up ad/tracker/malicious content blocking, and host my website/projects, with security, cost,reliability and performance in mind.
I think I want to use something like NPM, pfsense, blocky, unbound, authentik, fail2ban, and wireguard. either divided between free tier cloud hosts like GCP and oracle, and my VPS for less critical stuff like NAS access, or just put it all on the VPS if that’s easier. I’ve done an absolute boatload of research to try and educate myself, which I’ve not included here because this would make this already lengthy post even longer. That said I’m still very noobish with all of this and appreciate any advice!
For the VPS I chose, the bandwidth limit is 2tb. That’s definitely more than enough! Unless there’s another way they can limit traffic aside from that.
Can you explain that further? Where in the chain would I put this? I’m guessing basically every device I’d want to communicate with the VPS would need an ssh key right? And I could set it up so only particular requests require ssh keys, in case I wanted my homepage to be accessible by anyone?
Thanks for the advice btw!
I think ideally this would all run on a cloud host. But would it be possible to stream plex without incurring massive charges?
You can skip fail2ban for SSH. I missed the important bit. Duh…
Never used Plex but had a good experience with Jellyfin.
What’s your setup for this? Can you give me basic bandwidth you use and charges?
Jellyfin is completely free. I only used it shortly in my LAN environment so I can’t give you any numbers. It should roughly be in the same ballpark as plex though.
ah, I was referring to streaming your media through a cloud hosting service.