If you don't change the firewall rules between the two attempts, there
are only a few things that can go wrong:
1. Does the hostname point to the server that the ip address does? Make
sure with a packet sniffer.
2. If you are inside the network trying to connect to 192.168.0.x
directly, it is different from connecting to it through the hostname
address when you are inside the network. Generally for internal
devicesm, you want to point them at an internal DNS server that manages
all the 192.168.0.0/16 addresses. Then, have an external DNS managing
what the world sees.
Iptables does not play nicely doing an interface loop like the
following:
HSTA:IFA -> HSTB:IFA ->
HSTB:IFB --|
|
HSTC:IFA <- HSTB:IFA
<- HSTB:IFB
<-|
Ideally, it should look like one of the two following examples:
HSTA:IFA -> HSTB:IFA --|
|
HSTA:IFA <- HSTB:IFA
<-|
OR
HSTA:IFA
-> HSTC:IFA
The difference here is that the first example needs to loop through an
external interface and then pass back in, but since its source is from
itself, there is invariably problems doing the loopback. I am not sure
if there is a quick-and-dirty fix to this problem. I haven't found one
as of yet.
If this has nothing to do with your problem, then I must say *doh*