Ubuntu 12.04 在 VLAN 内打开端口 80

Ubuntu 12.04 在 VLAN 内打开端口 80

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

如果我从同一台计算机通过 localhost、127.0.0.1 或本地 IP 192.168.0.11 访问它,一切都会正常。如果我尝试从同一 VLAN 中的另一台计算机访问服务器,则它不适用于 http;它适用于 https。我已将 nginx 配置更改为同时监听端口 8000 以进行 http;然后我可以通过“ ”从同一 VLAN 中的另一台计算机访问 http http://192.168.0.11:8000

我在 Windows 机器上的端口 80 上也运行着一个 Web 服务器,并且可以从同一 VLAN 中的另一台设备访问它,因此路由器不会阻止传入的 http 流量。

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 是空的。我很久以来一直想找到解决办法,但都没有成功,现在这已经成为一件喜忧参半的事情了 :)。

答案1

这实际上不是一个解决方案,但是评论变得太大了。

现在您可能想知道问题是来自操作系统/网络还是来自 nginx。

实现此目的的一种方法是:

  • 关闭 nginx 并检查没有剩余进程(我猜你的服务器还没有投入生产)。

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

  • 从另一个框中键入telnet 192.168.0.11 80并开始输入随机内容。随机内容应该出现在您启动 netcat 的终端中。如果没有,请尝试再次使用 tcpdump 捕获流量。

如果您无法使用 netcat 重现 RST、ACK 问题,则 nginx 很可能存在问题。

相关内容