Please fill out the fields below so we can help you better. Note: you must provide your domain name to get help. Domain names for issued certificates are all made public in Certificate Transparency logs (e.g. crt.sh | example.com), so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.
The HTTP-01 challenge can only be done on port 80. Allowing clients to specify arbitrary ports would make the challenge less secure, and so it is not allowed by the ACME standard.
oh then how do i use TLS-ALPN-01 since my ddns is provided by my isp and gave me port 47810 to 47819 to work with and i cant change them, also it only redirect http request to my router so theres no option to add a dns record
Certbot does not have tls-alpn-01 capabilities, only http-01 and dns-01. There are other ACME clients which do have tls-alpn-01 support.
Note that tls-alpn-01 requires port 443 to be accessible.
Also note that the ACME client might influence the challenge used, but it's up to the ACME server to do the validation. Not Certbot or any other ACME client. ACME clients cannot influence the details of a challenge, such as the port used to connect to.
While this is going to be leaning off topic for deep discussion here, it is worth mentioning that Cloudflare now has Origin Rules that allow you to map to non-standard ports on your origin server. You can discuss this in the Cloudflare Community if you think it might be useful. DNS-01 challenges are reasonably straightforward on Cloudflare as well.