

You could try putting up a cloudflare proxy and Turnstile (their captcha product) to try to help with it.
The truth is, though, if it’s static content, then you have to be able to stop them every time. Once they get it once, they got it. With how frequently they can try, it’s going to be difficult to stop them.
Most things people self host are either torrent clients, HTTP(s) or are game servers. The first one can pick a port arbitrarily. The second can do host routing. The third - some of them support SRV records so you can direct the client to an arbitrary port. It’s becoming less common to need multiple public IPv4 addresses.