Web服务器无法从内部networking访问

我有一个networking服务器,我无法通过其公共IP地址访问,而我在我的内部networking上。 如果我在外部networking上,则可以通过其公共地址访问服务器。 另外,我可以在内部networking上使用其专用IPlogin到服务器。

正确的端口是开放的(80和443)。

我倾向于这是我的内部DNS服务器的问题。 我的DNS服务器驻留在不同的服务器上,所有客户端计算机都指向它。

任何想法为什么我不能通过内部networking上的公共地址访问此服务器。

这个问题通常有两种解决scheme:

  • 水平分割DNS:您LAN上的内部DNS服务器将yourwebsite.comparsing为服务器的内部IP地址。 真正权威的公共DNS服务器parsingyourwebsite.com的外部公共IP地址。

  • NATreflection (其他防火墙厂商称之为NAT环回,发夹等许多事情):当启用时,如果防火墙/路由器将自己的IP看作是来自内部机器的数据包中的目的IP,则将源重写为自身(这是WAN地址),然后再遵守DNAT(端口转发)规则。

我猜你没有任何一种解决scheme。

如果您有select的选项,我通常更喜欢拆分DNS,因为它允许您在内部testing不同子域映射到URL(例如*.dev.mycompany.com )的*.dev.mycompany.com而不必通过以下方式将其暴露给外部真正的 DNS条目和/或额外的端口转发规则。 使用NATreflection,您仍然需要添加任何/所有的端口转发规则的环回工作,你可能不希望这一点。

我强烈build议你为你的web服务器设置一个DMZ; 大多数商业级路由器/防火墙都具有一个DMZ端口,其规则已经设置为允许从外部到DMZ的LAN到DMZ,但是拒绝DMZ到LAN。

检查内部DNS条目是否parsing为外部地址。

 nslookup webserver.domain.com 

如果没有,您必须让您的内部DNS服务器将服务器的域名指向外部IP地址,但前提是您拥有对该域具有权威性的内部DNS区域。 否则,recursion查询很可能会返回与外部请求相同的logging。

如果你不是DNSpipe理员,你可以尝试在/etc/hosts文件中添加一个条目来testing它的工作。

Web服务器响应这个来自外部请求的IP地址,所以听起来像是绑定到正确的IP地址,所以在那里没有什么可怕的问题。