Apache 2.4 Web 服务器不可公开访问

Apache 2.4 Web 服务器不可公开访问

我正在尝试设置一个简单的 Web 服务器,并安装了 LAMP 包以开始使用(Apache 2.4)。我有一个简单的 index.php 页面,提供当前服务器统计信息。我可以从我的网络(192.168.1.200)内部访问它,但无法从我的网络的公共 IP 地址(71.46.83.4)访问它,尽管我的路由器上转发了端口 80 和 8080。

我尝试在 中配置我的监听端口apache2.conf,设置为Listen 80Listen 8080。我还尝试设置我的iptables,虽然我觉得这没什么用,因为它们默认都是打开的(至少我是这样认为的,如果我错了请纠正我)。我的iptables如下:

Chain INPUT (policy ACCEPT)
target  prot opt source      destination
ACCEPT  tcp  --  anywhere    anywhere    tcp dpt:http
ACCEPT  all  --  anywhere    anywhere    ctstate RELATED,ESTABLISHED
ACCEPT  tcp  --  anywhere    anywhere    tcp dpt:ssh
ACCEPT  tcp  --  anywhere    anywhere    tcp dpt:http-alt

Chain FORWARD (policy ACCEPT)
target  prot opt source      destination

Chain OUTPUT (policy ACCEPT)
target  prot opt source      destination

其结果如下netstat -ntl

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address    Foreign Address  State
tcp        0      0 127.0.0.1:3306   0.0.0.0:*        LISTEN
tcp6       0      0 :::8080          :::*             LISTEN
tcp6       0      0 :::80            :::*             LISTEN
tcp6       0      0 :::13124         :::*             LISTEN

我是 Linux 新手。我很乐意提供调试信息。提前致谢!

答案1

您的 ISP Brighthouse 很可能会阻止发往端口 80 和 8080 的流量。

尝试将非标准端口(如 12345 或 23456)转发到内部地址端口 80。也许您的路由器无法重定向端口,因此请重新配置您的 Apache 配置以使用相同的非标准端口。然后尝试从外部计算机访问您的服务器。

您的路由器和/或调制解调器在进行发夹路由时可能也会遇到问题。

你最好买一个来自亚马逊的免费微型实例如果你想修改网络服务器。你还可以获得Azure 上来自 MS 的免费服务器也一样。

答案2

您需要做的第一件事是尝试使用您的 IP 地址从另一个网络连接,使用公共 IP 从同一网络连接将不起作用,如果可以的话,请尝试使用您的手机 3g 网络。从您的回复来看,您似乎已正确配置 /etc/apache2/ports.conf 和您的虚拟主机文件,因为它在本地提供页面,@darren 可能是正确的,有时 isp 或路由器制造商使用端口 80 和 8080 访问管理界面,这可能不起作用,您需要设置端口转发,它应该可以工作。刚刚在我的虚拟机上测试过。不过,您需要在防火墙中打开端口。

相关内容