我有一台装有 Red Hat 7.1 的服务器,它有两个 IP 地址,一个是可在接口 Bond1 上在互联网上使用的公共 IP 地址,另一个是可在接口 Bond0 上在公司局域网上使用的私有 IP 地址。
我有 apache 2.4 在互联网上提供网页,并在其上配置了反向代理,以将一些请求转发到在同一台机器上运行的 tomcat 服务器。此 tomcat 服务器上运行两个应用程序,其中一个仅接受来自 127.0.0.1 的连接,这些请求通常来自另一个 tomcat 应用程序。
问题在于,一个 tomcat 应用程序向其他应用程序发出的请求会获取私有 IP 地址(bond0 上的 IP 地址),因此会被 tomcat 拒绝(403 错误代码)。如果我使用 systemctl stopfirewalld 禁用防火墙,则一切都会按预期运行。
我知道该地址从 127.0.0.1 转换为 172.30.xx.xx,因为我从 tomcat 日志中看到。
现在我无法在 tomcat 端进行任何更改,我只想知道谁以及为什么翻译这个地址并修复它。
谢谢。
答案1
对于来这里的人来说,这只是一场假面舞会。
firewall-cmd --zone=public --remove-masquerade
并且它有效。
由于问题中描述的配置不是活动配置,因此将区域设置为公共区域,并将 bond0 和 both1 添加到区域公共