为什么我的本地网络无法访问该网络上的服务器托管的互联网网站?

为什么我的本地网络无法访问该网络上的服务器托管的互联网网站?

我本地网络上的一台服务器正在运行 Apache2,它托管着一个可从互联网访问的网站。我可以从网络外部顺利访问该网站,但不能从网络内部访问。

也就是说,当我的互联网连接与为网络服务器提供互联网访问的路由器相同时,我无法访问该网站。

我认为这是因为路由器不允许同时在端口 80 上建立两个连接,但我可能错了。有什么想法吗?

答案1

问题是您的路由器(我假设是家用或 SoHo 型路由器)不会在内部接口上进行端口转发。

事情的经过如下:

  1. 局域网上的 PC 对您的网站进行 DNS 查找并获取路由器的公共 IP 地址
  2. Web 浏览器通过端口 80 向您的公共 IP 地址发送请求
  3. 您的路由器在其内部接口上接收请求,并且由于此接口上没有端口转发功能,因此它会将其发送到自己的网站或直接丢弃它,而不是将其转发到您的网络服务器。

为了解决这个问题,你必须使用你的网络服务器的本地 IP 地址 - 你应该把它放在你的主办方文件,以便您仍然可以使用它的 URL 而不是 IP 地址来访问它,以允许虚拟主机工作。

例如,将该行添加www.mygreatwebsite.com 192.168.1.10到您的主机文件(自然插入您的实际详细信息)并使用 www.mygre... 而不是 IP 地址,这样当您的浏览器的 HTTP 请求到达 Apache 时它会获取 URL,从而虚拟主机可以工作。

答案2

听起来好像 apache 网络服务器没有列出您的内部 IP 地址上的连接。

如果你查看 httpd.conf,应该有一行名为 listen 的命令,其中包含 IP 地址和端口。如果你想要更多监听,只需新建一行并输入类似

Listen 192.170.2.5:8000 

您是否安装了防火墙,这可能会导致问题吗?

相关内容