我正在尝试设置一个简单的 Web 服务器,并安装了 LAMP 包以开始使用(Apache 2.4)。我有一个简单的 index.php 页面,提供当前服务器统计信息。我可以从我的网络(192.168.1.200)内部访问它,但无法从我的网络的公共 IP 地址(71.46.83.4)访问它,尽管我的路由器上转发了端口 80 和 8080。
我尝试在 中配置我的监听端口apache2.conf
,设置为Listen 80
和Listen 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 访问管理界面,这可能不起作用,您需要设置端口转发,它应该可以工作。刚刚在我的虚拟机上测试过。不过,您需要在防火墙中打开端口。