为什么我的本地networking无法访问该networking上的服务器托pipe的Internet站点?

我的本地networking上的一台服务器正在运行Apache2,它托pipe着可从Internet访问的站点。 我可以从networking外部访问该网站,但不能从内部访问该网站。

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

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

问题是你的路由器(一个家庭或我所设想的SoHo)将不会在内部接口上端口转发。

发生了什么事情呢?

  1. 你的局域网上的个人电脑为你的网站做一个DNS查询,并得到路由器的公共IP地址
  2. Web浏览器将其端口80上的请求发送到您的公共IP地址
  3. 你的路由器在内部接口上获取请求,并且由于它没有在这个接口上的端口转发能力,它可以把它发送到它自己的网站,或者只是丢弃它而不是转发到你的networking服务器。

为了解决它,你将不得不使用你的web服务器的本地IP地址 – 你应该把它放在你的主机文件中,这样你仍然可以使用它的URL而不是IP地址来访问它,以允许虚拟主机工作。

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

这听起来好像Apache Web服务器没有列出您的内部IP地址的连接。

如果你看看你的httpd.conf中应该有一个名为listen的IP地址和端口。 如果你想额外听,只是做一个新的行,并input类似的东西

 Listen 192.170.2.5:8000 

你也有安装防火墙可能会导致问题?