go to canyouseeme.org and enter 25565, if it says connection refused or something else negative, that means that your port isn't open. Remember to have your minecraft server OPEN and RUNNING while doing this. your router would most likely only have ports open when an application requests it.
Anyways, internal ips don't need port communication. So that's why it works.
The reason why you're allowed to connect to other servers is that their firewall settings allow incoming connections. However most routers by default do not allow incoming connections (to prevent port hacking via port scanning, a problem with windows xp which allowed people to infect other computers via ip.) All you have to do is port forward and allow incoming data to your router. Internal data that happens within the router and does not communicate outside of the router does not go through the firewall.
I'm sounding a bit redundant, but basically:
1: go to canyouseeme.org and type 25565
2: if it says connection refused or something, port forward your router.
3: if it says that it's open, post your logs here and i'll take a look at it.