如果我有一个典型的家用路由器(例如 Net Gear),其中某些端口转发到内部服务器,是否有办法调整路由器,让我使用同一网络内的外部 IP 地址访问该内部服务器?是否有可以处理此类事情的非企业级路由器?
如果措辞很奇怪,让我用一个例子重新表述一下。
我的外部 IP 是 1.2.3.4。我的内部服务器是 10.4.3.100,端口 1178 正在从路由器转发到 10.4.3.100。
我希望能够使用外部 IP 1.2.3.4 从内部 IP 10.4.3.10 访问 10.4.3.100。可以吗?
答案1
这被称为发夹弯 (hairpinning),虽然一些家用路由器可以做到这一点,但这种情况很少见 - 这是有待研究的问题。
使用拆分 DNS 通常是解决此类问题的更好方法。通常,当需要从网络内部访问公共 IP 地址时,是因为有设备需要从网络外部和内部访问内部资源。它配置为在外部时使用公共地址,但随后需要重新配置为在内部时使用私有地址。
使用拆分 DNS 可以解决此问题,方法是对外部地址使用公共 DNS 服务,然后运行为同一 DNS 条目提供内部 IP 地址服务的内部 DNS 服务器。
假设您的 1.2.3.4 IP 地址的 DNS 名称为myserver.domain.com
,该名称在您的网络外部有效。然后,您可以在内部网络(可能在服务器上)上安装转发 DNS 服务器10.4.3.100
。它将有一个区域文件myserver.domain.com
,将地址解析myserver.domain.com
为10.4.3.100
。将其设置为较低的 TTL,以便它不会被长时间缓存。
您将使用内部 DNS 服务器在您的网络内进行任何名称解析,并将任何无法自行解析的请求转发给您的 ISP。
然后,您可以将任何应用程序配置为不使用1.2.3.4
而是使用myserver.domain.com
,它们将在网络内部和外部运行。
答案2
该功能有多个名称,其中包括“NAT 发夹”和“NAT 反射”等。
不幸的是,太多的消费级家庭网关在其工厂固件映像中不支持它。
确保您拥有制造商提供的最新固件,查看是否有可以打开的类似名称的选项,如果没有,请考虑在路由器上安装售后第三方/开源固件,或购买支持该固件的更高质量的路由器。
答案3
简单方法-您的服务器需要通过端口转发通过防火墙或路由器进行配置-
- 您需要公共 IP 地址才能实现此目的。