尝试使用 Ubuntu 和 Apache2 设置家庭网络服务器

尝试使用 Ubuntu 和 Apache2 设置家庭网络服务器

我已采取的步骤:

  • 在旧笔记本电脑上安装了 Ubuntu。
  • 为笔记本电脑在本地网络中指定一个静态 IP 地址10.1.1.12
  • 添加服务至Netgear DG834GU路由器端口 80 TCP/UDP
  • 在 Netgear 中为端口 80 设置防火墙规则,允许任何 WAN 用户和日志始终发送到10.1.1.12

我可以访问10.1.1.12本地网络并正常查看网页。当我尝试使用 ISP 分配的 IP 地址从外部网络(例如我的手机)查看时,我收到:

读取错误:系统返回(104)对端重置连接。

当我去的时候canyouseeme.org它说:

错误:我无法在端口 (80) 114.xxx.xx.13 上看到您的服务原因:连接被拒绝

我去了我的 ISP 工具箱,那里的 80 端口没有被阻止。

如果我尝试在 Windows 7 机器上使用 xampp 或任何其他小型 Web 服务器,也会发生同样的事情。我尝试禁用 Windows 防火墙,但没有任何变化。

从我读过的教程来看,我不需要对 Apache 做任何进一步的操作。我删除、清除并重新安装了它,以防万一我以某种方式弄坏了它。现在它几乎和新的一样。

这可能是因为我的连接速度太慢,还是可能是其他问题?服务器的超时时间为 300 秒,但我注意到当我尝试访问它时,它会在 15-20 秒后停止尝试。我该如何确定问题到底是什么?有没有人知道可以告诉我的工具?

以下是路由器设置屏幕的图片

刚刚再次查看了路由器日志:

Firewall: packet accept. 49.183.xx.xx(44947) --> 114.xxx.xx.xx(80),
Protocol TCP. Tuesday, Feb 10,2015 01:56:54 Firewall: packet accept.
49.183.xx.xx(44947) --> 114.xxx.xx.xx(80), Protocol TCP. Tuesday, Feb 10,2015 01:56:44 Firewall: packet accept. 49.183.xx.xx(44946) -->
114.xxx.xx.xx(80), Protocol TCP. Tuesday, Feb 10,2015 01:55:02 Firewall: packet accept. 49.183.xx.xx(44946) --> 114.xxx.xx.xx(80),
Protocol TCP. Tuesday, Feb 10,2015 01:54:52

所以有些事情发生了......但仍然没有向外部提供网页服务。

答案1

您可能需要在路由器设置中寻找“DMZ”选项。

当我设置我的网络服务器时,我必须转到 192.168.0.1 来访问我的路由器(这对你来说可能有所不同),然后导航直到找到“DMZ 主机”...将其更改为你的当地的您的 IP网络服务器。这是我遇到的一个问题。希望对您有所帮助。

我的 /etc/network/interfaces 文件如下所示: 我的 /etc/network/interfaces 文件并且运行良好。

答案2

您可以尝试使用 cloudflare.com 等服务将您的域名与服务器的外部 IP 地址连接起来。问题可能是您有一个经常变化的动态 IP 地址,您也可以查看以下服务http://dyn.com/...或者寻找某个地方的云服务并使用 sftp 安装 ubuntu+apache 以将您的内容上传到 /var/www/html。

答案3

您是否有防火墙服务,例如iptables,在 Ubuntu 系统上运行?如果是这样,它是否配置为允许来自所有外部地址的端口 80 连接,而不仅仅是来自 LAN 上的其他计算机?

在 Linux 系统上,您可以使用tcpdump,这是一个封包分析器,又名“嗅探器”,用于解决此类问题。通过在 Web 服务器上运行它,您将能够查看 TCP 数据包是否到达服务器。如果您将 Windows 系统配置为 Web 服务器,则可以在 Windows 7 系统上运行一个类似的程序,它是转储。这些是命令行实用程序。对于图形用户界面 (GUI),您可以使用Wireshark

有关如何使用 tcpdump 的信息(WinDump 使用类似的语法),请参阅使用 Tcpdump 捕获数据包

另一个需要检查的地方是 Apache 的日志,看看它们是否显示来自外部系统的连接。您应该能够从 Apache httpd.conf 文件中找到 Apache 日志的位置。

相关内容