![Macos Monterey 上的 Apache 服务器不接受外部公共 IP 连接...为什么?](https://linux22.com/image/783078/Macos%20Monterey%20%E4%B8%8A%E7%9A%84%20Apache%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8D%E6%8E%A5%E5%8F%97%E5%A4%96%E9%83%A8%E5%85%AC%E5%85%B1%20IP%20%E8%BF%9E%E6%8E%A5...%E4%B8%BA%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我使用的是 MacOS Monterey 12.4,并配置了一个 Apache 2.4 服务器,其中的虚拟主机会监听0.0.0.0:80
我主机上的所有接口 ()。我在 chrome 上测试了我的私有 IP ( 192.168.1.2
)、面向外部的 IP 以及本地主机,我的网页按预期显示。
但是,当我要求同事在 Web 浏览器上输入我的公共 IP 地址以加载 Apache 网页时,他看到的是“ [mypublicip] took too long to respond.
”消息。以下是我迄今为止诊断此问题所采取的措施:
在我的 ISP 路由器上启用端口转发 (80 -> 80),并启用 TCP
暂时禁用防火墙
暂时禁用防病毒软件
[SYN]
通过使用 Wireshark 捕获同事发送的流量来验证端口转发是否有效。我看到他的公共 IP 尝试在端口 80 上与我的私有 IP建立 TCP 连接 ( )192.168.1.2
。我的主机从未响应该连接,这导致[TCP Retransmission] [TCP Port numbers reused]
他那边出现很多问题。检查端口 80 是否已启用
nmap localhost
我不确定为什么在完成上述所有步骤后仍未建立完整的 TCP 连接,目前我感到很困惑。特别是,为什么我的主机不响应 TCP [SYN] 消息?任何帮助都将不胜感激。
答案1
似乎 MacOS 的防火墙有问题,即使我更新到 Ventura 后也是如此。需要关闭防火墙,并且必须重新启动 Mac 才能使防火墙更改生效。这是我能够访问我的网站的唯一方法。