问题描述
- linux服务器 外网请求不返回数据
-
环境是linux、apache、php。
问题是将项目从windows迁移到linux后发生的。
就是当外网(内网正常)请求服务器时,偶尔发生无数据返回的现象。
比如客户端发出一个GET请求,服务端收到请求信息,处理后输出返回信息,但奇怪的是客户端就好像没收到似得一直处于连接状态。
尝试过用php、java等语言发出过请求,都是上述情况,服务端能收到请求数据,服务端程序也确实运行到了输出那里,但客户端就一直收不到数据。
怀疑是不是linux环境的配置问题,但是不知道怎么查看?大神帮我分析下%>_<%
解决方案
确保路由表正确,确保网络掩码和网关设置正确,用tcpdump查看网络数据包,有没有收到ICMP差错报文(网络不可达/主机不可达/端口不可达等)
解决方案二:
可以网络抓包等看一下,既然服务器返回数据了,是不是还有可能客户端跟服务端之间的网络环境有问题等,防火墙规则
解决方案三:
这个会不会网络不稳定
解决方案四:
防火墙没有开。
网络应该是稳定的,因为windows环境下正常。
不过我也怀疑是不是网络配置有问题,可不知道应该怎么弄。
现在访问网站就是有时会出现长时间不出页面,直到浏览器超时。
链接到好说,大不了再点一次重新请求就好了。
可以一些表单提交之类的操作就完了,连操作成功与否都看不到。
有人遇到过这样的现象吗?
解决方案五:
内网正常说明子网的链路没问题,你又说有时候能打开网页有时候不行,我就怀疑是不是有人在内网搞破坏啊,比如ARP泛洪限制你的上网流量,再比如说VLAN风暴,MAC欺骗等等
解决方案六:
上两张抓包的图,一张是正常返回的,一张是没有得到返回的。
解决方案七:
看来好像是路由问题,但原理上还是不明白,先这样了。
时间: 2024-11-03 09:05:29