我的私有网络中有一个 Web 服务器,其 IP 地址为 192.168.1.134。我需要允许用户从互联网和私有网络访问此 Web 服务器。公共 IP 地址为 85.185.236.12。我在 wan 接口上设置了静态 nat (192.168.1.136 => 85.185.236.12)。现在,当我们从互联网访问它时,一切都运行正常,但是当我们尝试从 LAN 访问它时,我们无法访问 Web 服务器。我使用 cisco 1841 路由器,当我尝试访问它时,我认为 nat 不起作用。我们如何从 LAN 访问 Web 服务器?谢谢。
答案1
我刚刚回答了一个类似的问题https://supportforums.cisco.com/discussion/12102421/nat-hairpinning,让我在这里重复一下答案:
首先,这种情况经常遇到。
其次,虽然 NAT 在理论上可能是一种解决方案,但在实践中,特定供应商的 NAT 实现可能会受到限制并且无法支持这一点。
一种典型的解决方案是通过 FQDN 而不是 IP 地址来寻址位于内部网络中的服务器。需要两个 DNS 区域 - 一个外部区域,将 server.example.org 映射到公开的 IP,另一个内部区域,将相同的 FQDN 映射到服务器的私有 IP 地址。
到目前为止,看起来像是其他人评论的总结。但这里有一些新鲜的东西:
如果这个解决方案看起来不可接受,还有另一个,它也可以避免 NAT,您只需要在服务器和 LAN 主机上配置 TCP/IP 堆栈。请执行以下操作:
(1)在服务器上:添加公网 IP 地址(本例中为 85.185.236.12)作为次要的服务器网络接口的 IP 地址,掩码为 255.255.255.255(Web 服务或服务器上所需的任何服务也应监听此 IP 地址)
(2)在局域网计算机上:为该公网 IP 地址添加主机路由,例如,对于 Windows 主机使用以下命令:路由添加 85.185.236.12 掩码 255.255.255.255 192.168.1.134(您也可以使用 DHCP“静态路由”选项来分配路由)。或者,如果客户端和面向 Internet 的路由器之间有 L3 交换机/路由器,则在此中间交换机/路由器上(而不是在客户端上)配置该主机路由。
答案2
我猜你正试图使用它的公共 IP 地址 - 85.185.236.12 从 LAN 访问它。长话短说 - 不要这样做。使用命名视图(或其他实现)并使用其 LAN 地址访问它。