我有一个客户端,其 Windows Server 2008 机器运行着两组不同的脚本。
一组脚本托管多个不同域名下的多个网站。另一组脚本用于根据第一组中的 URL 生成报告和其他信息。
第二组脚本(用于报告)根据 URL 生成报告。但是,报告挂起了(不起作用)除非URL 必须手动输入到服务器的 HOSTS 文件中并绑定到127.0.0.1
。否则,请求似乎会转到外部 IP 地址,而该地址可能会被卡在 DMZ/防火墙中。更新 HOSTS 文件对于客户端来说很麻烦。
我的建议是,除了编辑 DMZ 中的规则之外,还要更新 Windows 路由表,以便任何发往公共 IP 地址的请求都自动重新路由到127.0.0.1
。
我疯了吗?或者这是一个愚蠢的建议?这可以通过命令实现吗route add
?如果可以,具体怎么做?
答案1
看起来请求正在发往外部 IP 地址,该地址可能被卡在 DMZ/防火墙处。
[...]
除了编辑 DMZ 中的规则之外,我的建议是更新 Windows 路由表,以便任何发往公共 IP 地址的请求都自动重新路由到 127.0.0.1。
专业系统管理的规则是让标准系统以标准方式运行。您的服务器无法解析自己的名称和/或访问自己的接口的 IP 地址,这是意料之外的。不过,我不知道您的拓扑结构,可能存在发夹式 NAT 或服务器上方的某种 SNAT/DNAT。无论原因是什么,至少要努力辨别这一切的原因,以及它是否是一个标准驱动的环境。
然而,抛开理论,进入实际问题,如果有必要,您需要追踪流量,直至线路上电脉冲的峰值和谷值,所有这些都是为了找出该服务器无法与其自己的接口地址通信的原因。使用 HOSTS 文件条目和路由表中的疯狂路由掩盖恶臭,稍后会再次折磨您。
由于没有提供所需的事实,因此无法给出问题的答案,但方法论如下:
- 监听参与通信的每个接口(服务器,交换机,防火墙等)
- 检查每个网络跳跃中是否存在可能干扰流量的应用程序和服务
- 这包括每个主机上的多个层。即使主机防火墙没有阻止对话,也并不意味着一旦数据包通过 TCP/IP 堆栈,IIS 就不会崩溃。
- 在 Windows 主机上,网络监视器是您最好的细致数据包解析玩伴。
我是不是疯了?或者这是一个愚蠢的建议?
没什么可说的。=)
这可以通过 route add 命令实现吗?如果可以,具体怎么做?
从“完成这项任务最没有效率的方法是什么,同时又最有可能让我想用叉勺切腹自杀”的角度来看,是的,这是可以做到的。至于“具体怎么做”,我不会告诉你,以免我抢先一步拿到叉勺。