我在我的家庭网络中设置了一个 Raspberry Pi 4 Web 服务器。我让 Apache 和 PHP 在其上运行,并且可以从网络内部访问该网站,但在我的网络外部时总是失败。
我可以使用我的私人、公共和我的 Web 域访问 Web 服务器,但前提是请求主机位于我自己的家庭网络内。
我在路由器上激活了端口转发(端口 80 和端口 443),但似乎 Raspberry 甚至不监听这些端口,因为每当我检查端口 80(https://www.yougetsignal.com/tools/open-ports/)它说端口已关闭(既然那里正在运行 Web 服务器,难道不应该打开它吗?)。
我显然可以提供任何与解决此问题相关的信息,但现在我不确定我还能说什么……
我迷路了。
任何关于可能出现问题的想法都将不胜感激!
答案1
您是否设置了动态 DNS?如果您直接通过外部 IP 访问 Web 服务器,您可能会收到来自 Apache 的错误消息,因为没有
Host:
标头(当您使用域名而不是 IP 时,浏览器会自动提供该标头)。确保 Apache 已正确设置默认主机。如果您在路由器上启用了 Web 管理,则路由器本身上的 Web 服务器可能占用了端口 80 和 443。请关闭 Web 管理或尝试使用备用端口,如下所述。
您的 ISP 可能阻止了端口 80/443。请尝试使用端口 81,然后访问您的网络
webserver through http://x.x.x.x:81
并查看是否可行。如果可行,则您必须使用备用端口。如果您路由器中列出的“公共 IP”以 10.xxx、172.16.xx 到 172.31.xx 或 192.168.xx 开头,则您位于“运营商级 NAT”之后,无法打开端口。