为了在我自己的软件上进行一些监控,我想使用网络服务器的“外部” 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-issue-question-dnat-snat-full-nat