Apache Web服务器无法公开访问


2

我在Debian(Jessie,8)的桌面上运行了一个Apache(2.4.10)Web服务器。

桌面有一个静态本地IP地址(192.168.x.x),我的WAN(公共)IP地址也已由我的ISP修复(82.x.x.x)。已添加端口80到此桌面的端口转发。

我可以从我的局域网访问网页没有问题,但我无法使用WAN地址访问它,从我家里面或外面:我收到Chrome的“网页不可用 - ERR_CONNECTION_REFUSED”。请注意,我可以使用WAN地址(在另一个端口上)打开我的路由器。

网页本身并不比使用Hello World的“index.html”多得多。

我试过转iptables防火墙,没用。我尝试了一个不同于80的端口,没有用。我已通过ISP呼叫,端口80未被阻止。我已经疯了谷歌。有没有人对如何使网站访问有任何建议?


您是否尝试过从广域网nmap或netcat到桌面? (也许与局域网内的相同)。我首先怀疑端口转发由于某种原因不起作用。我可能会尝试将22向前移植到桌面并从WAN进入机器,只是为了测试端口转发是否正常。
jhaagsma

我也无法通过SSH进入桌面。事实证明我在端口转发中使用了错误的设置。
Roberto

Answers:


1

我解决了!

感谢Moonpoint,我意识到问题出在Port-Forwarding上。所以我又看了一眼,发现对于端口80规则,“WAN接口”设置为“ADSL”(默认)。我不知道它意味着什么,所以我从未改变它。我尝试了不同的选项并将其设置为“ETHWAN”解决了这个问题。我现在可以公开访问该网页,并且我添加了一个也可以使用的无ip DDNS。

编辑:现在我了解到ETHWAN WAN接口只是我的ISP添加到路由器的接口,是glas光纤连接的接口。


0

当你说你试图关闭iptables防火墙,但没有成功时,你的意思是你禁用了iptables防火墙,但是仍然无法从外部IP地址连接到Web服务器,或者你的意思是你无法禁用主机基于iptables防火墙?检查您网站的Apache访问和错误日​​志,以查看是否有任何从外部IP地址访问系统的尝试都记录在这些文件中。检查你的Apache /etc/httpd/conf/httpd.conf 文件。在文件中的任何位置是否有类似于以下内容的任何部分:

<Directory /home/www/example>
      Order Deny,Allow
      Deny from all
      Allow from 192.168 127.0.0.1
 </Directory>

在上面的示例中,除了之外的所有访问 本地主机 地址127.0.0.1和同一LAN上的系统,即192.168.xxx.xxx,是不允许的。如果您想让服务器可以访问世界,那么“拒绝所有人”将是不合适的。

您可以将问题隔离到运行Apache Web服务器的Debian系统或设置端口转发的路由器,前提是没有干预的网络设备,使用 tcpdump的 在Debian Linux系统上执行命令。发出命令 tcpdump -i any port 80 作为根。这将导致tcpdump仅查找任何接口上与端口80的连接,而忽略其他流量。然后尝试从外部地址连接到Web服务器。如果tcpdump显示到达端口80的流量到达Linux系统,则端口转发正常工作。如果不是,则可能存在端口转发问题,因此请仔细检查是否将端口80转发到Web服务器的正确IP地址。


谢谢您的回复。我的意思是我认为我设法关闭防火墙(紧随其后),但它没有解决问题。 httpd.conf 我认为不再在Apache中使用。虽然我能找到 <Directory> 钻进去 Apache2.conf。没有“拒绝所有”的声明: <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> 我尝试过dcpdump,实际上,外部IP调用没有注册。我正常打开服务器时得到更新。但是,我确信我正在转发80端口。
Roberto
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.