所以前几天我买了一个 Raspberry Pi,并希望建立一个(微型)公共 LAMP 网络服务器,作为我自己的概念验证。
我在网上做过所有事情。真的是所有事情。Pi 作为本地服务器运行良好。可以访问我的网站和所有内容。但尝试公开访问它会带来很多问题。以下是我到目前为止所做的:
- 我已经将端口 80 设置为 Pi 路由器分配的静态 IP 地址。
- 我尝试使用我的本地 IP 192.168.8.111,但显然这是一个愚蠢的想法。然后尝试使用我的公共 IP,但无济于事。
- 将我的域名指向我的公共 IP (27.31.1X.XXX),但没有成功。收到“1.1.1.1:81”无法访问的错误。
- 我还想着一件事,但想不起来。也许你们能帮我想出点儿主意。
我没有使用任何 DynDNS 或其他静态 IP 服务,因为我现在只是在进行概念验证。不需要它永远有效。
有任何想法吗?
答案1
有时路由器的防火墙会阻止端口 80,请检查一下。此外,有时 ISP 倾向于阻止端口 80,以阻止其用户运行 Web 服务器,当然是为了减少带宽。如果您的 ISP 确实阻止了端口 80,请尝试将其转发到其他端口,例如端口 87。您需要设置路由器以在端口 87 上转发流量,并且您需要配置 Web 服务器以托管您的网站端口 87。如果两者都失败,请尝试查看您的 PI 是否可以访问互联网,有时错误的网络设置会导致此类问题。
答案2
您的 ISP 可能阻止了到您 IP 的端口转发。ISP 这样做的常见做法是阻止用户运行自己的服务器。我怀疑您也与多个用户共享一个 IP,因此无法转发到您的服务器。
尝试使用http://www.canyouseeme.org/确认 80 端口是否开放
答案3
首先,仔细检查 RPi 上的 Apache 配置,确保它没有监听 127.0.0.1 或 localhost。
检查路由器上的端口转发,确保转发的是 TCP 端口 80 而不是 UDP 端口 80。
iptables
确保RPi 上 没有任何可能过滤流量的规则。尝试清除所有iptables
规则。 另外,请仔细检查路由器的配置,确保没有配置奇怪的防火墙或过滤选项。(如果可能,您可以考虑将 RPi 直接连接到家庭互联网连接,而不是通过路由器进行额外的故障排除步骤。)
尝试http://{your PUBLIC ip}
从网络外的系统访问(例如,尝试在仅连接到蜂窝网络的情况下通过手机访问,或让朋友尝试从家里访问)。在确认可以使用指定的 IP 连接到域名后,再担心域名问题。
如果这不起作用,请尝试将 Apache 和端口转发配置更改为其他端口(例如 8888 或 48888),然后尝试http://{your public ip}:8888
从手机上执行类似操作。如果备用端口有效,则说明您的 ISP 正在阻止端口 80 上的传入请求。
如果这仍然不起作用,您的 ISP 可能阻止了所有传入流量,如果您的主要 ISP 是蜂窝服务,这种情况很常见。您需要考虑设置或使用可在家庭网络之外访问的现有 VPN 来解决此问题。