Windows 2003的路由/防火墙/ DHCP / …问题?

我有一个从外部的服务器的可用性(从本地networking的所有作品完美)的问题。 一个关键的问题是http请求被执行,但只有当响应小于一定数量的KB时。

  • 如果从外部通过浏览器访问,则只有小于或等于4KB的请求被响应
  • 如果通过远程服务器的wget进行访问,则只有小于或等于256bytes的请求才能成功
  • 如果从php(通过file_get_contents函数)访问的响应是最大256kb(如果请求一个dynamic的php文件,如果请求一个静态的html文件,只有128kbs)

成功的例子和失败的尝试:

# wget http://tamtam2.izdelava.si/a.html --12:46:08-- http://tamtam2.izdelava.si/a.html => `a.html' Resolving tamtam2.izdelava.si... done. Connecting to tamtam2.izdelava.si[84.255.203.125]:80...connected. HTTP request sent, awaiting response... 200 OK Length: 255 [text/html] 100%[=====================>] 255 249.02K/s ETA 00:00 12:46:08 (249.02 KB/s) - `a.html' saved [255/255] # wget http://tamtam2.izdelava.si/b.html --12:45:40-- http://tamtam2.izdelava.si/b.html => `b.html' Resolving tamtam2.izdelava.si... done. Connecting to tamtam2.izdelava.si[84.255.203.125]:80...connected. HTTP request sent, awaiting response... 

FTP连接也存在类似的问题,例如,如果访问包含太多文件或子文件夹的目录,则连接中断。 我已经尝试过不同版本的Apache(甚至FTP服务器),但结果总是相同的。 在IIS服务器中,问题是一样的。

我想这个问题是在rutinga /防火墙的水平上的某个地方,但我没有确定任何具体的东西。 有没有人有任何想法可能是什么问题?

这听起来像是一个pathMTU发现问题给我。 看看这个从微软的程序: http : //support.microsoft.com/kb/314825

基本上,从服务器计算机,尝试和PING您执行上面的testing与计算机的参数:

 ping <machine above> -f -l 1472 

这会让你回到第一跳的“Fragmentation needed”答复,它不能处理这个尺寸的数据包。

服务器计算机具有哪种WAN连接? 例如,DSL连接通常具有小于1500的MTU。

您的防火墙设备可能有一个configuration选项,将TCP MSS“夹”到MTU,这样您就不必对服务器计算机的MTU进行任何更改。 一旦你确定这是一个MTU问题,那么你可以追求一个基于防火墙的修复。

看起来外围防火墙configuration为限制HTTP请求/响应大小。 但是为什么防火墙对于不同的客户端wget,浏览器和php脚本的行为是不一样的。 两端使用wireshark可以在每种情况下确切地查看电线上发生了什么。 这应该可以帮助你解决问题。