I am having the same issue. I have had my server running for a long time, with no issues. 2 days ago, my friends and I were all playing on the server, ( which I have hosted from my personal PC ), and they all suddenly disconnected. They texted me telling me my server was down, (while I am still locally playing on the server). I tried to connect through my external address, and it will not let me connect. I have been battling this problem ever since...
Found a solution. I connected my pc straight to my modem ( bypassing my router ) and pulled my external ip address. It was different than the one I was getting when going through my router.
I connected externally to my world with my router bypassed. ( adding the new ip address into my multiplayer server list )
I shut everything down, hooked my router back up, and when I pulled my external ip address again, it gave my the one it origionally did.
When I fired up Minecraft, and looked for my server externally, it showed the one listed under the ip address given by directly connecting my computer to my modem. ( I can not explain why when I connect my router to my modem, and pull my ip address that way, that I receive a false IP ) But I can say that finding out what IP address you get while connected directly to your modem and then using that address while connected to your router should solve the issue ( at least it did in my case )
Hope this helps.
Edit - No longer working ... Not sure whats happening.