Your performance issues with Zerotier are likely due to it deciding to "relay" the traffic through a zerotier-operated server.
Tailscale may or may not have the same issue. It is certainly worth a try.
I would also
make sure IPv6 is enabled and working at the location that is using Starlink and at any locations that want to connect to your cameras. I think most cellular providers have IPv6 enabled without you having to do anything (however whether it will work properly or not is anyone's guess). Once IPv6 is enabled at both ends, Zerotier and/or Tailscale may be able to use it to establish a more reliable direct link than they can through CGNAT (which is an IPv4-only thing).
If the above does not yield satisfactory results, there are many other things you could do.
If you are nerdy enough, you could run your own relay service for Zerotier or Tailscale in a cheap or free cloud VM (have a look at Oracle Cloud -- they have a great free tier)
*
TCP Relay | ZeroTier Documentation
*
DERP servers · Tailscale Docs
Or you could run a more traditional VPN server like Wireguard on a cloud server, connect everybody to that, and use it to route traffic between VPN clients.
I see from your post history that you use
Blue Iris, which means all the remote viewing traffic actually goes through a single TCP port using HTTP(S) which means there are a few more options that don't require you and your friends and family to run any kind of VPN software on viewing devices:
- For very light traffic, you could use a Cloudflare Tunnel and the free proxying capability available with Cloudflare DNS. Be aware it is against their terms of service to use it this way for media streaming, but for minimal usage they won't notice.
- You could run your own cloud server with Zerotier, Tailscale, or Wireguard to provide a tunnel to Blue Iris. Then add your choice of HTTPS reverse proxy software on the cloud server to proxy the traffic to Blue Iris. This way clients connect directly to the cloud server as if it was running Blue Iris itself.