I think my ISP uses cg-nat. Is there any solution in this case?
Your best bet would be to contact your ISP.
https://amoss.me/2017/05/port-forwarding-behind-a-carrier-grade-nat/
The IP of my laptop is 192.168.1.4. It is connected to my WIFI router and DHCP on the router assigns the address. When I browse https://canyouseeme.org it reports that my IP address is 108.55.nnn.nnn. That is the external (internet) address of my Verizon router.
When I want to expose some app to the internet I need to browse http://192.186.1.1 and log in to my router. From there I would define a forwarding rule that sends network traffic to port 80/443/22 to my 192.168.1.4 laptop.
If you were able to "connect from another internet provider", and you did NOT configure any port forwarding rule, then I don't know how that is working. Does canyouseeme.org detect that port 22 is open? Does it report the IP address that you are trying to connect to?