Recently I replaced my old router with the Linksys E4200V2. I have a personal server, which is a DMZ host in my home network. I can access the server via the public IP of the router, since DMZ is set. But it only works when I access from an external network, e.g. when I'm at work or using my phone via 3G. Within the home network, it seems the traffic isn't forwarded to the DMZ. It was not a problem with the old router, which is much cheaper than the Linksys E4200V2.
I couldn't find an option to fix the problem in the router's admin page. The closest was "Filter Internet NAT Redirection for IPv4 Internet Only" in the Security > Firewall section but it didn't work.
There are two ways to work around it I can think of.
The first is running my own name server, which resolves the domain name of the public IP of the router to the internal IP of the DMZ host. But it was too slow, about 600% slower than OpenDNS name servers.
The second option is changing the
/etc/hosts file in my MacBook when I'm in the home network. I can do this automatically with
crankd. The downside is I can't do the same for my iPad and iPhone.
Is there any better way to solve this problem?