Hi,

I an currently trying to add remote access to 2 of my servers but didn’t manage to get a working setup as is.

Right now I want to access 2 servers:

  • one is for media stuff (navidrome, jellyfin, managing the arr stack)
  • one is for my data syncing with rsync and after set a backup from borg to another server not on my domain

I was trying at some point to add stuff such as tailscale, but somehow I always had issues with having both servers reachable within the IP range I use on my local network, so everything would work as is with the current config at home being away. I have also heard of cloudflare tunnels as well, but that I didn’t try yet. At some point I tried to do just a regular wireguard from my opnsense, but I would prefer not to have open ports to worry about (and also had issues with internal IP not being assigned from wireguard as well).

Does anyone here has experience with this? If so, what was your solution and/or caviats to it?

EDIT: I got some very good responses but I think I failed to understand that what I would need is probably a hop in server of sorts for the VPN. Meaning:

  • I login to the hop server
  • I get an internal IP for my network, meaning, 192.168.1.xxx
  • I do whatever I need to do
  • log out

Does anyone has experience with such solution? My point would be able to have full access to everything on the network without having to do a VPN on every machine i need access to (although it can create a massive single point of failure/risk)

  • Paragone@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    25 minutes ago

    Give it a robot that can read your handwriting, & write snail-mail lettres to it?

    d :

    _ /\ _

  • StrawberryPigtails@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    6
    ·
    4 hours ago

    The way Tailscale works, you don’t need to worry to much about your local IP address. You can just use the Tailscale IP address and it will connect as if you were local using the fastest route. That’s the beauty of a mesh VPN. Each device knows the fastest route to each other.

    Without more information I can’t really tell what issue you are actually having, but if your system has internet, you have a local IP and if the system is showing as up on your tailscale dashboard than it will have a tailscale IP. Not being able to connect using one or the other would be a configuration issue. Whatever service you are having trouble with is probably only listening to one of the interfaces but not the other.

    I’m assuming you are running a linux or unix box, but try running the command ip addr. Assuming you have the package installed, it will tell you all of your IP addresses for the system you run the command on. The list may be quite long if you have a lot of docker containers running. The command tailscale ip will do the same but limited to your tailscale IP addresses.

    • mrnobody@reddthat.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 hour ago

      How did you config tail scale though? Are you using some Apple or MS author account? I want to stay away with using one of their services to “authorize” connecting to my own server

      • StrawberryPigtails@lemmy.sdf.org
        link
        fedilink
        English
        arrow-up
        1
        ·
        25 minutes ago

        Are you using some Apple or MS author account?

        Google and Github SSO were the only options when I originally setup tailscale. There are a few more options now including what looks like every self-hosted OIDC provider I’ve ever heard of, and a few I hadn’t.

        How did you config tail scale though?

        There are a couple options depending on how you are using it. Most of the time I just use the tailscale command to configure each node.

        Most systems were just sudo tailscale up --ssh to get it up and running, although I have one system setup as a subnet router to give me outside-the-house access to systems that I can’t put tailscale on. That was a little more involved but it was still pretty straightforward and well documented. Their documentation is actually very well written and is worth the read.

  • GreenKnight23@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    4 hours ago

    “how do I add remote access to my servers?”

    don’t.

    create a new server that’s accessible via VPN and then access your servers from there. then actively log all connections from that device and alert anytime someone or something connects to it.

    what is more secure? a house with twenty front doors or a house with one front door and an alarm on it.

    • ZeDoTelhado@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      4 hours ago

      If you check my edit that is kind of what I was hoping to do from the start: have a hop server (or stepping stone, both terms apply), and from there I do what I need to do

  • hendrik@palaver.p3x.de
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    2
    ·
    edit-2
    6 hours ago

    For remote management, I just enable SSH, configure it to run on some non-standard port and enable Fail2ban… Make sure I use certificates or secure passwords and also check if fail2ban is actually doing its job. Never had any issues with that setup.

    For the services I’ll either use a reverse proxy, plus configure the applications not to allow infinite login attempts, or Wireguard / a VPN.

    • ergonomic_importer@piefed.ca
      link
      fedilink
      English
      arrow-up
      2
      ·
      59 minutes ago

      For remote management, I just enable SSH, configure it to run on some non-standard port and enable Fail2ban… Make sure I use certificates or secure passwords and also check if fail2ban is actually doing its job. Never had any issues with that setup.

      This is what I’ve done for years, but I sometimes feel like it’s not a great solution from a security standpoint.
      Though I have switched from fail2ban to Crowdsec, which did end up banning my own connection attempts when I forgot to whitelist myself, so that seems secure enough.

  • sj_zero@lotide.fbxl.net
    link
    fedilink
    arrow-up
    2
    ·
    4 hours ago

    Apache guacamole is something I wish I had when I started. Let’s you connect with telnet, ssh, RDP, or VNC using html5

  • Leon@pawb.social
    link
    fedilink
    English
    arrow-up
    8
    ·
    6 hours ago

    I recently switched from tailscale to NetBird. Similar solution but FOSS and self-hostable.

    Have you exposed the subnet the services are on, onto the Tailscale network?

  • neon_nova@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    6
    ·
    6 hours ago

    I was going to say Tailscale. You will need to give more details about what didn’t work with Tailscale, but it has been pretty seamless for me.

    • mrnobody@reddthat.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 hour ago

      How did you config tail scale though? Are you using some Apple or MS author account? I want to stay away with using one of their services to “authorize” connecting to my own server

    • ZeDoTelhado@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      6 hours ago

      Basically when I connect to tailscale I just can’t get it to give an internal IP so I can access everything with my configs. Unless I am missing something obvious, I don’t understand what is going on here.

      • neon_nova@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        5
        ·
        6 hours ago

        When you connect to Tailscale, via cli it should give you a link to use to connect it to your account. You can get the ip address in various ways. One of which is just looking on your Tailscale dashboard. You need to have Tailscale installed on every machine you want to talk with.

          • rtxn@lemmy.world
            link
            fedilink
            English
            arrow-up
            6
            ·
            edit-2
            5 hours ago

            If you have IPv4 addresses, I guarantee you’re behind at least one NAT gateway. What you need is a Tailscale subnet router, or something equivalent from another service.

            In the most basic configuration, the Tailscale client facilitates communication (by using some UDP black magic fuckery) between one host it is running on and another host it is running on that are both connected to the same tailnet (the virtual network between Tailscale hosts). For this purpose, it uses addresses from the 100.64.0.0/10 “shared address space” subnet. These addresses will only be reachable from within your tailnet.

            If you want an entire subnet (e.g. your LAN) to be accessible within your tailnet, you need to set up a subnet router. This involves configuring the Tailscale client on a device within the target subnet to advertise routes (tailscale set --advertise-routes=192.168.1.0/24), allowing the host to advertise routes in the admin page (Machines -> -> Edit routes), and configuring the Tailscale client on external hosts to accept advertised routes (tailscale set --accept-routes).

            If you want your servers to be accessible from anywhere on the internet, you’ll need Tailscale Funnel. I don’t use it personally, but it seems to work. Make sure you understand the risks and challenges involved with exposing a service to the public if you want to choose this route.

  • captcha_incorrect@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    6 hours ago

    Do you want to expose port 80/443 and set up a reverse proxy or do you want to use a VPN tunnel? You could just use SSH to port 80 and 443 like so: ssh -L 80:<local-server-ip>:80 -L 443:<local-server-ip>:443 <username>@<domain>

    I expose port 80/443 and use Caddy as a reverse proxy together with Authelia to protect anything that I deem needs an extra layer of security. I followed this guide: https://caddy.community/t/securing-web-apps-with-caddy-and-authelia-in-docker-compose-an-opinionated-practical-and-minimal-production-ready-login-portal-guide/20465

    Once setup, it is easy to remove or add a backend to Caddy and Authelia. This way does mean that you sometimes need to log in twice, but that is a small price to pay if your backend app does not support SSO (like n8n community edition).

  • prenatal_confusion@feddit.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    5 hours ago

    I switched from tail scale to pangolin for reverse proxy. Does everything. Auth, VPN, hidden services, public services. Fantastic piece of software

  • Denys Nykula@piefed.social
    link
    fedilink
    English
    arrow-up
    3
    ·
    6 hours ago

    Have you tried adding Tor hidden services? It was the easiest solution for me to expose ports from behind the provider’s NAT to my phone when not at home.

    • ZeDoTelhado@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      5 hours ago

      Never tried hidden services from tor. Can check how that works but not sure if it is the solution I am looking for. Thanks for the info anyways!

  • pHr34kY@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    2
    ·
    4 hours ago

    Just expose it on single-stack IPv6. Nobody ever knocks. The address space is not scannable.

  • Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    edit-2
    23 minutes 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
    IP Internet Protocol
    NAT Network Address Translation
    SSH Secure Shell for remote terminal access
    SSO Single Sign-On
    UDP User Datagram Protocol, for real-time communications
    VNC Virtual Network Computing for remote desktop access
    VPN Virtual Private Network

    [Thread #127 for this comm, first seen 2nd Mar 2026, 10:00] [FAQ] [Full list] [Contact] [Source code]