Accessing my local services from outside without static public IP

So thing is - my provider doesn’t provice static public IP. And I have some services that I need to have access to from outside of my local network - stuff like Zabbix or Grafana.

In my local network (let’s say 192.168.100.0/24) I have a Proxmox server (192.168.100.10) and on it are my services (Zabbix on 192.168.100.20).

How do you handle accessing it? I tried setting up an OpenVPN Access Server on AWS, then having my Proxmox as one client (gateway) and connect my phone as another client. This works, however I can only access Proxmox, nothing else inside my home network.

Is it possible to do with Access Server, or do I need to configure something else?

EDIT:
Found solution - since I have my domain at CF, I just used Cloudflare Tunnel.

Dynamic DNS pointing at my home IP, VPN in.

cloudflare has free tunneling you can use

DDNS provider and a local running update script. This has been the standard way of doing this for years and years.

If you will own domain, you can point it to your public IP. If you consider cloudflare, you can dynamicly update all records via REST API.
I wrote powershell script for it. Can be used in windows and Linux environment.
PowerShell/cloudflare_ddns.ps1 at main - PowerShell - Gitea: Git with a cup of tea

Otherwise you can use ddns.

Log into your ISP provided router and note your connected machines have public IPV6 addresses. These ARE static addresses just IPV6 vs IPV4. You can point AAAA DNS record to them from domain of choice. Of course you want that machine quite well secured to not allow hackers inside your LAN. Many people miss this possibility.

IPv6: AAAA record pointing to your server’s IP address

IPv4: A record pointing to your router’s IP address, port forward to the server’s private IP address

In both cases, update the DNS records when your public IP address changes

I rent a minimal VM instance from Vultr (fsdo “minimal”; I’m paying for a $10/month instance, but there are cheaper ones), which gives me a static IP.

Then I use OpenSSH to open tunnels between my homelab and the VM. SSH listens for and accepts connections on the VM and forwards traffic over the tunnel to the services on the homelab.

For example, to make the VM “serverhost” accept connections on its port 8080 and forward them to my home server’s port 80, I would run this command on my home server:

$ ssh -v -N -g -R '*':8080:127.0.0.1:80 username@serverhost

The “-v” option causes the SSH session to display additional information, like when new connections are forwarded, the remote IP making the connection, and such.

Thus, as long as the tunnel is up, anyone making connections to serverhost’s port 8080 will actually be connecting to my home server’s port 80.

i’d port forward wireguard for the stealthiness and setup ddns.

I use GitHub - oznu/docker-cloudflare-ddns: A small amd64/ARM/ARM64 Docker image that allows you to use CloudFlare as a DDNS / DynDNS Provider. to automatically update my IP in the DNS entries.

Before that I had a script that updated duckdns.

L2TP tunnel to a static IP (Specifically L2TP service )

As a bonus if you’re using mobile broadband this bypasses a lot of their typical BS when using the connection.

https://github.com/boringproxy/boringproxy is great. “Simple tunneling reverse proxy with a fast web UI and auto HTTPS. Designed for self-hosters.”

For starters, you don’t need a static ip, because your home ip should never be directly tied to a dns record.

Use cloudflare zero trust/tunnels and a VPN to access anything you need to.

At the risk of making a somewhat useless and cliche comment I’ll say “This is the way”. It’s literally that simple and it’s very effective.

Any tutorial or tips on how to do this? I use Cloudflare as my domain provider, so this would be perfect

If you want another corporation inside your LAN go ahead.

Can you provide me with some tutorial? My router offers DDNS, but what do I do from here?

Just use dynamic dns wtf

Open cloudflare and look for ZTNA, install the warp agent as a tunnel under settings and downloads and install the warp agent in your machine.

probably on youtube. it’s part of the ZeroTrust product