从互联网访问XAMPP本地主机

67

我在本地笔记本电脑上安装了XAMPP,并且拥有一个几乎静态的IP地址。我想把这个IP地址给其他人,让他们可以用浏览器运行它。我配置了apache httpd-vhosts.conf以监听我的IP地址:80,并将虚拟服务器添加到本地httdocs目录的IP地址和域根目录,并将服务器名称设置为localhost。Apache无法启动。我该怎么做才能从外部计算机访问我的网站。


提醒所有将来使用此类工具托管实时网站的人,需要小心谨慎(http://serverfault.com/questions/453617/why-not-use-a-wamp-stack)。在许多情况下,它们被配置为进行开发工作,从而使您的计算机面临更多的安全风险。 - Machavity
4个回答

114

首先,您需要配置计算机从路由器获取静态IP。如何执行此操作的说明可以在这里找到。

例如,假设您选择了IP地址192.168.1.102。完成上述步骤后,您应该能够通过访问http://localhost和http://192.168.1.102来在本地计算机上访问网站,因为您的计算机现在将始终具有该网络上的IP地址。

如果您查找IP地址(例如http://www.ip-adress.com/),则看到的IP实际上是路由器的IP。当您的朋友访问您的网站时,您会向他提供此IP。但是,您需要告诉路由器,在收到网页请求时将该请求转发到您的服务器。这通过端口转发来实现。

如何执行此操作的两个示例可以在这里这里找到,尽管您看到的确切屏幕取决于您的路由器制造商(如果需要,请搜索确切的说明)。

对于我所使用的Linksys路由器,我输入http://192.168.1.1/,输入我的用户名/密码,点击应用和游戏选项卡,再选择端口范围转发。输入应用程序名称(随便你叫什么),起始端口(80),结束端口(80),协议(TCP),IP地址(以上述示例为例,您将输入192.168.1.102,这是您为服务器分配的静态IP地址),确保选中启用转发。重新启动路由器,更改应该生效。

做了所有这些,您的朋友现在应该能够通过在其计算机上打开浏览器并输入http://IP.address.of.your.computer (与您访问此处时看到的相同)来访问您的网页。

正如之前提到的,由ISP指派给您的IP地址最终会变化,无论您是否下线。 我强烈建议使用DynDns,它完全免费。 您可以在其域名下选择主机名(例如cuga.kicks-ass.net),然后您的朋友只需在浏览器中输入http://cuga.kicks-ass.net即可始终访问您的网站。 这是他们的网站:DynDns


那么使用DynDns,您不需要将IP地址设置为静态的吗?您只需将其放入您的IP地址中,然后就可以使用了? - chromedude
3
有没有免费的替代DynDns的选择? - marco
2
DynDns曾经是免费的(在提出这个问题时确实如此)。然而,现在他们取消了免费套餐。 - Cuga
嗨!我已经设置了静态IP地址,但是我无法在我的电脑上访问本地主机网站...这里出了什么问题?? - Gaurav Nag
为什么我从本地机器访问它时(在同一网络中是可以的),但在我的网络之外返回503错误? - user9433467
显示剩余2条评论

24

我猜你可以在5分钟内完成这个操作,无需进行任何进一步的IP/端口转发,以临时形式展示你的本地网站。

你所需要做的是:

  • 前往http://ngrok.com
  • 下载小工具
  • 将该工具提取并以管理员身份运行

enter image description here

输入命令:
ngrok http 80

你会看到它将连接到服务器,并为你创建一个临时URL,你可以将其分享给朋友,并让他浏览本地主机或其任何文件夹。

你可以在此处查看详细过程。
如何从另一台计算机访问/共享xampp或本地主机网站


这个过程有多安全? - candlejack
它与HTTP相同,您的帐户数据通过Ngrok服务器隧道重定向,但是HTTPS可能是更安全的选择! - Dheeraj Thedijje

0

你需要在路由器中打开服务端口,然后尝试使用你的公共IP地址访问你的网络之外的服务器。因为如果你在网络内部尝试访问,公共IP地址将始终重定向到你的路由器,但是从外部访问时,它将重定向到你的服务器。


0

我知道这篇文章很老了,但是为了未来的参考:

我也使用了动态DNS提供商。想要测试网站(IIS)在我的(家庭)路由器后面。所以我想使用类似于这样的东西:

my.dynamic.dnss.ip:8080 (因为我的路由器端口80被用于管理它)。

所以这似乎是唯一的解决方案。
但是:Paypal似乎不喜欢端口8080:只允许端口80和443(不知道为什么!!)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接