I've never done this before, but I think you could if you use a DDNS updater
post
Most VPNs don't allow port forwarding, and if they do it's a random port that changes frequently. So you'd need a method to tell people the new port. Also, you typically want to use SSL so you'll have to use self signed certs. Though interestingly LetsEncrypt recently started testing certs for IP addresses:
https://letsencrypt.org/2025/07/01/issuing-our-first-ip-address-certificate
If you setup a Tailscale and an NGINX reverse proxy or a port forward on a VPS, you can definitely have people connect via the VPS IP to reach your home server.
I figured it out, and it surprisingly is possible.
ChatGPT was able to walk me through it. The big issue I had was that I was trying to connect using my own machine, which does not work. However, trying to connect using my phone did work. I also had to bind my VPN's local IP (it's different than the one that displays in the app) for nginx to work.
I could verify my VPN's local IP with ip -4 addr show. It's the entry with tun0.
http {
server {
listen LOCAL_VPN_IP:VPN_PORT;
server_name localhost;
...
I think this is what you are looking for?
https://github.com/fosrl/pangolin
all 6 comments