我开发了一个基于互联网的 IOS 应用程序,我的应用程序通过 html 请求与服务器通信。
当我在本地测试它时,它工作得很好。但是当我通过互联网对其进行测试时,似乎服务器无法接收到html请求。我使用我的 Mac Pro 作为服务器,笔记本电脑通过与我的 iPhone 相同的 wifi 连接到互联网。那么,我怎样才能让一台通过wifi连接到互联网的笔记本电脑成为一个服务器呢?
2 回答
从家用机器在互联网上提供一些东西有很多复杂性,而且从您的问题陈述中并不清楚问题出在哪里。以下是一些最常见的陷阱:
检查服务器是否可以从与服务器相同的局域网上的另一台计算机访问(首先将 iOS 设备放在外面 - 如果没有,服务器配置错误。检查服务器上的防火墙设置。
我了解您希望可以从局域网以外的设备访问它(即,您希望它可以在任何地方使用,而不仅仅是您的家庭网络)。为此,您必须将路由器配置为将适当的端口(可能是 80,取决于您使用的服务器软件)转发到服务器。这称为“端口转发”或其他类似名称(取决于路由器制造商);有关如何启用它的信息,请参阅路由器的文档,因为该过程因品牌和型号而异。请注意,某些 ISP 提供了一个有线/DSL 调制解调器,其中有自己的防火墙(例如,comcast 业务类就是这样做的),因此您可能还必须在其上设置端口转发。
通过 Internet 连接到服务器时,您需要指定服务器的外部IP 地址(您可以使用 whatsmyip.com 或类似方式找到它),而不是 LAN IP。
由于一切都在本地工作,问题出在将笔记本电脑连接到互联网的设备上:您的互联网盒子。
默认情况下,当它收到来自外部的请求时,您的盒子会拒绝它们,因为这是一个安全风险(它可能允许任何人访问您的私有网络服务器,如果成员存在安全漏洞,这可能是一个真实的问题)。此外,您的盒子大部分时间都比连接的设备多,那么它怎么知道它收到的请求是针对哪个设备的呢?
幸运的是,有一种方法可以告诉您的盒子“嘿!如果您在此端口上收到请求,请将其转发到我的笔记本电脑!”。它被称为端口转发。这很难解释,因为每个 ISP 都有不同的实现。但是要设置它,您必须连接到您的盒子的管理界面并查找与端口转发相关的部分。
到达那里后,您必须设置端口(如果您运行 HTTP 应用程序,例如,它是 80)、协议(有疑问使用两者),最后是目标 IP。这是您的计算机在本地网络上的 IP。您可以ipconfig
在 Windows 上使用它。
设置转发规则后,您应该能够使用动态 DNS 服务或您的 Internet 地址从 Internet 访问您的应用程序,您可以从http://www.whatismyip.org等网站获取该地址