I followed a tutorial that uses Unity transport layer for the multiplayer. The local mode and Lan mode works perfectly fine. However, my thesis title is in online mode. I used port forwarding just like what the tutorial did. The port numbers are correct. The ipv4 address matches the machine where I'll host the game. When I put the public IP address of the host they do not connect.
First I thought CGNAT is the problem. But the router I'm using has a PureVPN now that bypasses the CGNAT. Yet, the client and host still doesn't connect. I also allowed the game in Windows firewall.