Hey all,

I’m setting up a homeserver and trying to figure out the best way to access it remotely. I’ve been looking at different solutions, but I’m a little stuck.

I’ve been looking at VPNs, but it feels weird, to route everything through my home IP when I’m also trying to use a commercial VPN for privacy / to combat services fingerprinting me based on my IP.

I’m currently considering a reverse proxy setup with an authentication provider like authentik or authelia, but as far as I understand, that wouldn’t work well with accessing services through an app on my mobile device (like for jellyfin music for example.) I did think about just opening up the ports and using a DDNS with a reverse proxy, but is’nt that like a big security risk?

Keep in mind I am no network admin, but I don’t have anything against learning if someone can point me in the right direction.

Also I heard some people say that on proxmox you should use unprivileged containers instead of vms for your services, does that hold up?

Any recommendations for tools or approaches?

    • leaf_skeleton@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      6
      ·
      25 days ago

      Well, yes I looked at tailscale too, but that would prevent me from using my normal commercial VPN, which I would still like to use. The way I understand it, if I routed my entire network through tailscale to my server, it would essentially make all my internet traffic exit at my server. So, everything would still appear to be coming from my home IP address. I’m trying to get the best of 2 worlds: using the VPN to hide my IP from services that i visit and my ISP, and a secure connection to my home server.

      • Dr. Wesker@lemmy.sdf.org
        link
        fedilink
        English
        arrow-up
        4
        ·
        25 days ago

        I have all my services spun up in docker containers, which makes it easier to pick and choose which services use Tailscale and which use a VPN. I guess I haven’t yet been put in a position where I wanted one to use both.

      • irmadlad@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        25 days ago

        I’m trying to get the best of 2 worlds: using the VPN to hide my IP from services that i visit and my ISP, and a secure connection to my home server.

        How about Cloudflare Tunnels/Zero Trust? The caveat being that you have to own a domain that you can change the nameservers to the ones Cloudflare assigns you. You can purchase a domain from Cloudflare, but I think a lot of people get one from NamesCheap or PorkBun. I purchased on for less than $5 USD. With Cloudflare Tunnels/Zero Trust, you don’t have to open ports, fiddle with NAT, or any of that. You install it on your server and it punches a hole in to allow communication.

        Some people like Cloudflare, some people don’t. Personally, I’ve never had any issues except for a very brief downtime a while back.

      • TunaLobster@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        25 days ago

        I don’t have an exit node in my tailnet. Through the magic of routing, tailnet stays in tailnet and vpn stays in vpn. I got extra fancy and used gluetun to handle docker vpn traffic, but only for some ports of some containers.

  • monkeyFromTheLake@programming.dev
    link
    fedilink
    English
    arrow-up
    9
    ·
    25 days ago

    I am using wireguard for this purpose. My router supports that. It’s a very easy setup and works fine in every is case I encountered except for android car. You do not expose anything to the outside. It’s kind of like logging in to your home network.

    • B0rax@feddit.org
      link
      fedilink
      English
      arrow-up
      3
      ·
      25 days ago

      I heard you need to exclude Android auto in the WireGuard settings, then it should work.

      The reason is that the car communicates via IP with your phone. But when all phone traffic is routed through your home, it can not reach the car.

  • EntropyPure@lemmy.world
    link
    fedilink
    English
    arrow-up
    9
    ·
    25 days ago

    Cloudflare Tunnels work great and are really easy to setup. Plus you are not exposing you machine completely to the outside, as the cloudflared service/container „calls out“, and Cloudflare is your reverse proxy. Downside is, you’re binding yourself to one of the US hyperscalers.

    Pangolin uses the same principle, but is a bit more challenging to setup. Plus you need some kind of cloud server to make it work.

    As you already have a VPN active at all times (at least it sounds like that), a VPN home seems out of the picture.

    Unless you have a dedicated firewall at home, maybe reconsider the reverse proxy route. Personally would not feel comfortable with exposing a machine at home to the internet in full without a handle on what it can do or how it may be reached.

    • irmadlad@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      25 days ago

      As you already have a VPN active at all times (at least it sounds like that), a VPN home seems out of the picture.

      Expand on that, if you would. I run local VPN and everything else through Cloudflare. In fact the VPN DNS is Cloudflare as well as the stand alone pFsense firewall. Perhaps I am misunderstanding, which is likely since I’m all drugged up trying to pass a kidney stone.

      • EntropyPure@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        25 days ago

        Well, not every system can handle or support multiple VPN connections with different providers, or the VPNs could interfere with each other. E.g. when using Tailscale you can not use another WireGuard based VPN according to their FAQs.

        Also, it adds complexity to the stack and system as a whole on the client side. That is all fine and dandy as long as it works, but quickly a pain in the butt once you have to debug something.

        • irmadlad@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          25 days ago

          when using Tailscale you can not use another WireGuard based VPN according to their FAQs.

          Anecdotally, if I turn off the Advanced killswitch and The VPN killswitch of my main VPN, I can actually bring up Tailscale. But you are right, it does add complexity. Basically I use Tailscale on the server and pFsense firewall as an overlay VPN. It’s also handy if you lock yourself out of the server. A ‘backdoor’ of sorts.

  • potatoguy@mbin.potato-guy.space
    link
    fedilink
    arrow-up
    7
    ·
    25 days ago

    I run my instance using cloudflare tunnels, directly from my thinkpad (over wifi), these tunnels are helpful because you don’t need to open ports, etc, also, there are other tunneling options, like hosting a server on a VPS that tunnels to your own selfhosted server, as there are some alternatives to cloudflare in that aspect.

    Idk, might be an option.

  • eightys3v3n@lemmy.ca
    link
    fedilink
    English
    arrow-up
    7
    ·
    25 days ago

    Personally, I use headscale (self-hosted tailscale) that is open to the internet. Then my phone and all other devices use tailscale clients to connect to that. All my other services are accessed through the tailscale magic DNS service.

    Nothing except headscale is open to the internet, and I can access anything I need on the server and other devices. It also doesn’t just route All traffic through my server, only the stuff to other tailscale nodes.

    Then just recently I’ve been using Nginx proxy manager and my DNS to make nicer names instead of memorizing a dozen ports for random services I host :p

  • GeraltvonNVIDIA@lemmy.ml
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    25 days ago

    Personally, i would use VPN, Pihole for Local-DNS Records and a simple Local Reverse Proxy to address my Network-Services. I wouldnt open anything from my Homelab to the Internet.

  • TechLich@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    25 days ago

    My recommendation is a VPN server to connect in from outside and have the default gateway for the VPN clients be a server that acts as a router that’s set up with your commercial VPN.

    That way, you can be outside on a phone or a computer, access your internal network and still have your public internet traffic go out through your commercial VPN without having to be able to configure multiple VPN connections at once (eg. Android doesn’t support that).

    Eg. 2 debian proxmox containers. One that runs wireguard (head/tailscale might also work here?) for external access and one that runs mullvad(or whoever) VPN cli and IP forwarding to be the gateway for your clients.

    Only downside is the extra hops to send everything through your home network first rather than straight to the commercial vpn which is probably fine depending on your speeds. You can always disconnect and connect directly to the commercial VPN for faster internet traffic if you need to.

  • Chaser@lemmy.zip
    link
    fedilink
    English
    arrow-up
    4
    ·
    24 days ago

    My Ubiquity Dream Machine has Wireguard integrated. So it’s literally just a few clicks to spin up a server. I use it in combination with a port forward on my FritzBox and a dyn ip using https://dynv6.com/ and a domain i had laying around anyways.

    Regarding Wireguard: Wireguards (imho) best feature is split tunneling. You can decide which ips or subnets to route through the tunnel. See AllowedIPs.

    As a default it says something like

    AllowedIPs = 0.0.0.0/0
    

    Which means “just route everything through me”.

    However you could allow your subnets only. Like this I use my private and my business vpn at the same time.

    AllowedIPs = 10.0.0.0/24,10.0.1.0/24,10.0.2.0/24,10.0.3.0/24
    

    You mentioned, that you have not a lot experience with networking, so your subnet may look like that. Just check your local ip and replace the last digit with 0/24

    AllowedIPs = 192.168.2.0/24
    
  • Auli@lemmy.ca
    link
    fedilink
    English
    arrow-up
    3
    ·
    24 days ago

    Depends I just have a proxy and open port 443. Its not wide open but open enough that others can use it. I geo block have IP lists filter through it and suricata. Or use a VPN if others don’t need access.

    • irmadlad@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      24 days ago

      Its not wide open but open enough that others can use it

      How does that work? Are you saying you are filtering with Suricata? Curious as in my mind a port is either on or off. I am always ready to be schooled.

  • okwithmydecay@leminal.space
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    25 days ago

    I’ve been using frp to create a reverse proxy between my NAS at home and a DigitalOcean droplet. Been using it for over a year now, and not had any issues.

  • i_am_not_a_robot@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    3
    ·
    25 days ago

    If you’re running insecure services, you can restrict them to be accessible by vpn. I have a mix of internet accessible and vpn accessible services using the tailscale nginx plugin.

    If you want to send all your traffic over a vpn, you will either need to route all your traffic through your own vpn or use some sort of multiplexed vpn. tailscale can do this with mullvad, but it’s not yet possible with headscale.

  • Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    20 days ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    CGNAT Carrier-Grade NAT
    DNS Domain Name Service/System
    HTTP Hypertext Transfer Protocol, the Web
    IP Internet Protocol
    NAS Network-Attached Storage
    NAT Network Address Translation
    PIA Private Internet Access brand of VPN
    PiHole Network-wide ad-blocker (DNS sinkhole)
    SSH Secure Shell for remote terminal access
    SSO Single Sign-On
    VPN Virtual Private Network
    VPS Virtual Private Server (opposed to shared hosting)
    nginx Popular HTTP server

    [Thread #110 for this comm, first seen 22nd Feb 2026, 16:31] [FAQ] [Full list] [Contact] [Source code]

  • TechLich@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    25 days ago

    For the unprivileged container thing, containers tend to be lighter on resources than VMs at the cost of a little isolation (they share the same kernel as proxmox which could have security implications).

    The ability for lxc containers to run unprivileged with all the restrictions that entails alleviates a bit of that security risk.

    Both options are generally considered pretty secure but bugs/vulnerabilities could break isolation in either case. The only real 100% safe isolation is bare metal.

    I tend to run containers unless I have a really good reason to need a VM, and run unprivileged unless I have a really really good reason not to.

  • iggy@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    25 days ago

    I went a different path than the VPN route that seems popular in the other comments…

    I use a reverse proxy (caddy) with wildcard SSL (so all my hostnames aren’t in the public cert registry) plus port knocking. So normally no outside IPs are allowed to access my internal services, but I can knock and then access anything for a while. Working well so far.

    • SayCyberOnceMore@feddit.uk
      link
      fedilink
      English
      arrow-up
      3
      ·
      25 days ago

      How’d you setup the port knocking? Is that something caddy does?

      I’m using haproxy and was thinking of trying the same thing… not sure if haproxy supports it though, or whether I have to do something else …?

      • iggy@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        23 days ago

        I do the port knocking at the firewall level (it’s a pretty simple nft chain setup). Caddy isn’t involved at all. I was thinking about integrating that into my caddy config using something akin to an operator, but I haven’t needed any extra functionality yet.

  • tirateimas@lemmy.pt
    link
    fedilink
    English
    arrow-up
    2
    ·
    25 days ago

    Tailscale or Netbird, any of them is better than setting up DDNS and securing the network access yourself.