我遇到了一个奇怪的问题,似乎无法解决。首先,我要说的是,这个设置本来运行得很好,但不知何故却停止了正常工作。
我有一个网络代理,以确保我的一个客户办公室的用户在访问互联网之前对其网络流量进行过滤。此代理(Quinto 实验室 QLProxy) 位于该网络的 DMZ 中。该 DMZ 中还有一个托管多个小型应用程序的 Web 服务器。
流量流向如下(用于网页浏览)
USER (10.0.0.0/24) --> Web Proxy (172.16.0.6) --> Outside world
当用户尝试访问托管在 DMZ 中的 Web 服务器上的网站时,流量如下
USER (10.0.0.0/24) --> Web Proxy (172.16.0.6) --> Web Server (172.16.0.7)
最近,Web 服务器开始拒绝访问其托管的所有网站(仅允许一个网站访问)。浏览器上的错误消息为The system returned: (110) Connection timed out
正常运行的网站设置与无法正常运行的网站设置看似相同。当浏览无法正常运行的 Web 服务器上的网站时,我会看到指向 Web 服务器的SYN_SENT
链接。我还在路由器上看到了从代理到 Web 服务器的链接。DNS 可以很好地解析正常运行的网站和无法正常运行的网站。我在代理服务器上的文件中记录了条目以确保其准确性。我尝试过对这些条目使用私有 IP 地址和公共 IP 地址,结果似乎相同。netstat -ant
SYN SENT
/etc/hosts
完全放弃 Web 服务器上的防火墙不会改变任何事情,连接仍然被拒绝。
有人知道为什么会发生这种情况吗?或者能告诉我如何找出为什么会发生这种情况?
编辑 :
- 据我所知,没有任何变化导致此问题 - 我想不出有任何变化可能导致此问题。
- 代理机器上的 iptables 规则为空
- 如果我使用内部 IP 地址从代理远程登录到 Web 服务器,则它可以正常工作,但是如果我通过外部 IP 地址(使用端口 80)远程登录,则不行。那么这是 NAT 问题吗?
- Web 服务器是 Server 2012
- 代理机器或 Web 服务器均未进行防火墙更改。
答案1
你没有描述你的 NAT 设备是什么,但在我看来,NAT 设备无法做到发夹(或环回)NAT。
令人困惑的是,这种情况怎么会突然改变。我能想到很多可能性。也许您最近更改了 NAT 设备的配置。也有可能您一直在使用水平分割 DNS 返回网站的私有地址(而不是公共地址),而这些记录最近被删除了。也许您的代理服务器正在使用具有水平分割记录的内部 DNS 服务器,并且最近已重新配置为使用 Internet DNS。
在 Web 服务器上运行嗅探器并确认来自代理的 SYN 数据包从未到达 Web 服务器,往往会将责任直接归咎于您的 NAT 设备。