That's the big question isn't it. This bit is the bane of private servers and will require a bit of reading but i think it will help you understand
The problem with most home routers is that they are cheap and therefore don't generally support all of the really cool router tricks, and the one that causes this problem is one of them. The loopback connection.
When you are behind a router your external players can't see your lan ip addresses (192.xxx.xxx.xxx, 10.xxx.xxx.xxx) and can't connect to them as these addresses are special ones that aren't used on the internet (they are for local networks only). They can only connect to your external address (no-ip or whatismyip.com) and only if you have told your router to expect these connections (port forwarding) or the router drops the incoming connections.
So, you would think you use your external address? Wrong. That will work for them but it will only work for them, not for you, because you have no loopback connection.
See, in the same way your external players can't see your lan addresses you can't see your external address from inside the lan as it doesn't really exist to you, there is no "loopback" that tells your pc that the address is actually "you". On a big expensive Cisco router you would have that loopback connection but it isn't really thought to be necessary on cheap home routers as 99% of people don't need it.
The rule is simple. If a computer will be connecting from the lan then it must use the lan ip address to connect to the server. If a computer is connecting from outside then it must use the external address. This is how to configure your internal.txt.
For the server it's harder. odbc.ini only need the windows server ip so that's easy. It gets harder when you start thinking about the server itself as it needs to be handing ip addresses back to the incoming connection (player or server process) as it passes you amongst it's individual services. You need it to depend, if it is another server process or a lan connection it needs to hand back the lan ip as if it gives back the external one the connection will fail. The opposite is true if it is an external connection, if you hand back a lan ip it fails.
Right now cable and modem people are laughing. They don't have this problem
The trick is to experiment and see exactly which processes fail with which addresses. Truthfully i have not experimented with the server enough to know the answer yet, unless my idea works out. I need to post it properly though as it isn't something that most people will know how to do in windows let alone linux :/