Ubuntu 12.04在VLAN内打开80端口

我有一个运行在Ubuntu 12.04上的nginx服务器,通过端口80提供http,通过端口443提供https。

一切工作正常,如果我通过本地主机,127.0.0.1或本地IP 192.168.0.11从同一台计算机访问它。 如果我尝试从同一VLAN中的另一台计算机访问服务器,则不适用于http; 它适用于https。 我已经改变了我的nginxconfiguration也听HTTP端口8000; 然后,我可以通过“ http://192.168.0.11:8000 ”从同一个VLAN中的其他计算机访问http。

我也有一台运行在Windows机器80端口上的Web服务器,可以从同一个VLAN中的其他设备访问它,因此路由器不阻止传入的HTTPstream量。

nginx进程由root运行。 我已经使用tcpdump,我看到数据包到达Ubuntu:192.168.0.16.49735> 192.168.0.11.80和一些响应正在给予192.168.0.11.80> 192.168.0.16.49735(我不知道是什么回应是虽然)。 没有请求到达nginx web服务器(我已经检查了访问日志)。

我有iptables空。 我已经很久没有试图find一个解决scheme,现在它已成为一个幸福或辛酸的问题:)。

这不是一个真正的解决scheme,但评论太大了。

现在你可能想知道这个问题是来自os / network还是来自nginx。

达到此目的的一个方法是:

  • closuresnginx并检查没有剩余的进程(我猜你的服务器还没有在生产中)。

  • 在端口80上启动netcat。可以是nc -l -p 80但是取决于你使用的netcat

  • 从另一个箱子inputtelnet 192.168.0.11 80然后开始inputramdom stuff。 随机的东西应该出现在你开始netcat的terminal。 如果不是,请尝试再次使用tcpdump捕获stream量。

如果你不能再现你的RST,那么netcat的ACK问题,nginx很可能是问题所在。