wget/curl 从内部网络(Web 服务器)到外部 IP 地址(Web 服务器)连接失败

wget/curl 从内部网络(Web 服务器)到外部 IP 地址(Web 服务器)连接失败

为了在我自己的软件上进行一些监控,我想使用网络服务器的“外部” UR 调用 wget,因此我的调用将看起来像 wgethttps://www.mydomain.de/path

但此调用失败并显示错误消息:连接失败。

当我从网络外的另一台服务器/设备拨打电话时,通话没有任何问题。所以我认为我的防火墙规则总体上是正确的。

这似乎是 NATing 或者类似的东西的问题。

我正在使用 Sophos SG UTM als 防火墙,在 DMZ 内部有一个 ESX Server,其中有一台运行 RHEL 7 和 Apache Web 服务器的虚拟机。

我配置了以下 NAT 规则:来自 Internet 的流量通过 https 传输到防火墙的外部接口,然后将目的地更改为 Web 服务器 (DNAT)。我还配置了以下防火墙规则:Web 服务器/Nagios 通过 https 传输到 Web 服务器和外部接口。

笔记:Nagios 用于其他监控。我需要服务器上运行的特殊软件中的 wget 调用

因此,在尝试和错误中,我添加了以下 DNAT 规则:从 Web 服务器通过 https 到外部接口的流量将目的地更改为 Web 服务器。

之后,连接失败消息消失了,但仍然无法建立连接。所以我认为 NATing 或类似的东西存在问题。我对网络配置了解不多,所以也许有人可以提供帮助或提供一些解决方法或想法。

答案1

正如@HBruijn 在他的评论中提到的那样,这看起来像是“Hairpin NAT”问题。因此,我的问题的答案是添加一条新的 NAT 规则(完整 NAT):

来自 Web 服务器(内部 IP)的流量通过 https 到外部接口,然后将目标更改为 Web 服务器(内部 IP),并将源更改为内部地址。

在我的 Sophos UTM 特殊案例中,本文提供了一些信息和屏幕截图:https://community.spiceworks.com/topic/954015-sophos-utm-9-nat-i​​ssue-question-dnat-snat-full-nat

相关内容