I'm going to be away from home for a few weeks and would like to access my computer (LMDE) while I'm away. Remote desktop connection would be ideal, just file transfer would be acceptable.

Is a VPN necessary, or can port forwarding be good enough for a one time use?

What software/networking recommendations do you have?

all 19 comments

sorted by: hot top controversial new old
[–] 5 points 39 minutes ago* (3 children)

You have several options.

First important question, though: what type of router do you have? If you own your own router, instead of using the one provided by your ISP, then you may have additional options.

  1. Tailscale VPN - Quick and easy setup. "Just works". Creates an environment like your computers are connected to the same network. Requires setup on each device. Some limits on free plan.
  2. *Wireguard VPN (router host) - Configuration required at the router. Only remote devices need additional setup; devices at home don't need individual config. *Must be supported by router
  3. SSH tunnel - Ideal for terminal only, though X11 forwarding is possible. Requires either a router that has an SSH server, or port forwarding. Not recommended to allow username/password-only auth; should configure for key-based auth (rsa256/ed25519) only
  4. Secure Remote Desktop (hosted service) - TeamViewer and similar services provide remote desktop access through account-based login, using their relays. Theoretically secure but susceptible to account takeover attacks.
  5. Secure Remote Desktop (direct connect or self-hosted service) - Relay-less (e.g. NoMachine) and self-hosted relay (e.g. RustDesk) provide secure, self managed remote desktop. Requires router port forwarding or reverse-proxy configuration at the router.

There are other options (like OpenVPN or Wireguard hosted on a device internal to the network, rather than the router) but I personally recommend one of the above 5 options depending on your use case and risk profile.

If you travel a lot, consider purchasing a travel router (eg GL-iNet devices). Once configured, they act as a repeater or access point for your devices, including forwarding all traffic over a VPN. You arrive at your destination, plug in the travel router, use its webUI to connect it to the hotel or guest Wi-Fi of your choice, and then connect all your personal devices to its Wi-Fi network. No need for connecting every device to a new network at each destination. They support captive portal login, AdGuard Home baked in, blocking all non-VPN traffic, and more.

  • source
  • hideshow 3 child comments
  • [–] [S] 2 points 35 minutes ago (2 children)

    My router is running OpenWRT (and stopped having intermittent issues after replacing the stock OS).

    I'm leaning toward Tailscale for the "quick and easy" recommendation. If I need to do this again, I might try something a little more advanced.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 4 points 31 minutes ago* (1 child)

    If you're already running OpenWRT then I personally recommend Wireguard over tailscale if you have the time. It's not hard to set up at all and takes the third party out of the loop. OpenWRT has excellent support for Wireguard configuration and export of configs to the devices you want to connect (install client, import config). The only "gotcha" is needing DynamicDNS (assuming you don't have a static public IP)

    Tailscale is definitely super-simple but this IS the self-hosted community ;D I always prefer removing third parties at every opportunity.

  • source
  • parent
  • hideshow 1 child comment
  • [–] [S] 2 points 23 minutes ago

    This is why I ask humans instead of AI. I didn't consider router level options.

    I've already got dynamic DNS set up, and I've been meaning to set up a way to access my NAS from out of the house. This might be the final push I need.

  • source
  • parent
  • [–] 1 point 59 minutes ago

    Wireguard server in your home network, remote access via DDNS is the way I do it.

  • source
  • [–] 3 points 2 hours ago

    If you can rent a vps you can use it as a relay server. You setup sshd on your home pc and ssh to the vps with the -R flag.

    ssh -R 8022:localhost:22 user@relay

    As long as the connection is live you can ssh to the server via relay. If you set GatewayPorts to yes on the relay in sshd_config then it will act as an open port on your home pc and anyone will be able to connect to it over the internet with

    ssh -p 8022 user@relay

    so make sure to secure it correctly, only allow ssh keys etc. If you set GatewayPorts to no, then only clients connected to the relay will be able to connect to the server, this is a must have if you're gonna use unsecure protocols like VNC. First ssh to the server

    ssh user@relay

    next

    ssh user@localhost -p 8022

    or one line, especially useful when combined with -i to point at the home pc's ssh key stored on the client

    ssh -J user@relay user@localhost -p 8022

    You can also setup VNC over ssh. Add 2nd -R on home pc with vnc ports

    ssh -R 5901:localhost:5901 user@relay

    or together

    ssh -R 8022:localhost:22 -R 5901:localhost:5901 user@relay

    On the client ssh with the -L flag

    ssh -L 5091:localhost:5091 user@relay

    Now you can connect your VNC client to

    localhost:1

  • source
  • [–] 14 points 4 hours ago

    Tailscale or Netbird literally take 15 minutes tops to set up and get working. Then you just pick whatever services like SSH you want to use, have them accept connections only from Tailscale/Netbird IPs, and you're gold.

    I use Tailscale on my entire home lab, and with my friends and family for everything from Minecraft, to accessing my Jellyfin home media server, to accessing my parent's home PC across the country to check updates and backups.

    Fast, easy, free, and secure.

  • source
  • [–] 3 points 3 hours ago

    Answering on the idea of port forwarding. Though like others have said, tailscale or similar is a better option.

    Opening an ssh port would allow file transfer. You could also so remote desktop with port forwarding over ssh and vnc (or some other more modern protocol, haven't futzed with anything like that in a long time).

    Probably doesn't need saying but make sure your system is up to date. Also using a nonstandard port and using key based authentication and disallowing password authentication and good security measures. If the device you're connecting from isn't something you're bringing with you, you'd also need a copy of your private key.

  • source
  • [–] 7 points 4 hours ago

    Tailscale is easier and has a generous free tier, Netbird is free and has more features

  • source
  • [–] 1 point 2 hours ago* (2 children)

    If you want a full complete remote desktop solution, you should probably look at VNC and portforwarding its port. I think it's 3001.

    Or if you won't (or can't) mess with port forwards, you could setup something like RustDesk for the TeamViewer experience.

  • source
  • hideshow 2 child comments
  • [–] 18 points 6 hours ago
    [–] 17 points 6 hours ago* (1 child)

    Port forwarding is moderately simple but there are risks to just opening a port and not guarding it with appropriate firewall rules. This includes an SSH server if not up-to-date.

    Whereas setting up something like Tailscale on your machine and on your laptop is exceedingly straightforward, avoids firewall reconfigurations, and Just Works(tm). You could then connect to whatever service you have running, just as if you were on your LAN. My only gripe is that you do need a Google/Microsoft/GitHub/Apple account or OIDC to set up.

    In the long term, if you have misgivings about that company operating the coordination server necessary for this tunneling solution, then there's always the open-source Headscale, which is a drop-in replacement.

  • source
  • hideshow 1 child comment
  • [–] 10 points 5 hours ago

    will recommend. just use Tailscale. you may distrust any of these OIDC providers, but that doesn’t mean they can see your traffic. long term if you’re paranoid move to Wireguard or Headscale, but this is so simple it’s a no-brainer

  • source
  • parent
  • [–] 8 points 5 hours ago* (last edited 3 hours ago) (2 children)

    If you set up one port forward to any SSH server on your local network (e.g., a spare Raspberry Pi), you can then use SSH tunneling to mirror any port on any machine in your local network to ports on your remote SSH client. And it leaves no trace on either side outside of the terminal session.

  • source
  • hideshow 2 child comments
  • [–] 6 points 6 hours ago

    I guess depends on the risk factor you want to take. For me I'd go VPN. You could go port forwarding, or you could even do something like temporarally use something like anydesk depending if you want to trust a corporation for remote access.

  • source