我正在开发一个使用 Facebook 应用程序的网站,该应用程序仅在网站可从外部访问时才有效。因此,当网站在服务器上时,一切都正常。当我在本地开发时,应用程序无法运行。如何使我的本地开发环境可从外部访问?
我正在使用 MAMP,我的家庭 ISP 是 Sky。
我尝试了教程中的以下操作,但我真的不知道我是否走在正确的道路上。我已经注册了一个帐户http://dyn.com/并设置主机名 MY-HOST-NAME.dyndns-at-work.com。当我在浏览器中导航到 MY-HOST-NAME.dyndns-at-work.com 时,我可以看到路由器的起始页。但是,当我使用 hidemyass.com 查看“外部”URL 时,我收到的消息是“无法加载请求的资源”。
据我所知(我不确定我是否理解),我需要使我的路由器可从外部访问,这是我尝试使用上述步骤实现的。然后我需要将网页请求定向到我的计算机以查看其本地主机。这至少是正确的吗?
答案1
您已设置 dyndns。如果您打开 whatismyip.com,并 ping 到您的个人 dyndns 地址,您应该会看到相同的 IP 地址。我不知道您为什么会看到路由器的页面。这听起来像是一个安全问题。路由器不应该显示任何内容,因为不可能通过外部 IP 地址访问路由器管理员。也许您已将路由器设置为允许这样做,我认为这不是好的做法。也许您的提供商已经这样做了?
您需要在路由器中设置端口转发。路由器应将来自外部的 80 端口 (HTTP) 流量发送到您的计算机,或发送到计算机的 (本地) IP 地址,无论 MAMP 使用哪个端口进行 HTTP。现在它只是忽略该流量。您的计算机防火墙应该允许此流量,但它可能已经允许了。
- 外部世界的计算机通过 HTTP、端口 80 向您的 IP 发送请求
- 路由器收到请求并发现它有 80 端口的端口转发
- 路由器将流量转发到计算机 192.168.1.22(您的本地计算机 ip 地址),端口 8888
- 本地计算机在端口 8888 接收请求,并将其发送到 MAMP Apache