@SonoMichele I don't know if this is possible, too costly, or too complicated for you, but my approach: (1) Use a cloud server with a public IP address. (2) Run OpenVPN server on that box. (3) Run OpenVPN client on the pi (or another box on your network). (4) Use iptables or similar built-in firewall/router instructions to control what comes in and what gets forwarded through your openvpn tunnel to your pi.
Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.