Here's the way I do it:
I have a redhat linux box behind a firewall/router. My ISP has assigned a DNS name to all of their IP addresses (as most ISP are doing nowadays) and that is what I put in the start up scripts for my EMU server as the $PUB_IP.
on my linux and windows boxes I added an entry for the private IP address of my Linux box and gave it the domainname my ISP uses and an illegeal name (ie eq-server) in the /etc/hosts and C:\winnt\drivers\etc\hosts files.
Now, depending on my mood, I can play on my servers and so can anyone else on the internet. My world server tells the login server the NAME of the host, and everyone on the internet can connect. My windows machine finds the private IP address in my hosts file and connects directly to that IP address. The zone servers start up and find the linux box's IP address in the /etc/hosts file, and connect to the world server. If I am not in the mood for newbie questions, I boot up the server with the illegeal name (eq-server) and if anyone on the internet tries to connect, they can't find the correct IP address and never bother me.
I've never tried the setup with the linux box being the server and firewall. Try using the name game I 'm using and see if it works for you. Remember you can have multiple names per IP address.
And since the host machine only affects the machine you have it edited on, I would play this game for getting minilogin working:
minilogin and client on 192.168.1.1
world and zone on 192.168.1.2
in both host files, have:
192.168.1.1 windows
192.168.1.2 linux my.domainname.com
To use the name game above to get the server up and running. point your eqhost.txt file to connect to windows:5999 instead of eqlogin1.eqemu.net:5999. point your LoginServer.ini file to windows:5999 as well.
I would use the private IP address for the linux box first, and see if that works.
This post might help you play with any further Network Address Translation problems:
http://www.eqemu.net/forums/showthre...ht=linux+patch