我在127.0.0.1:3000的计算机上运行了一个应用程序
我想从连接到同一networking的iPhone访问该应用程序。 我之前做过这些,但却没有做到这一点。 有任何想法吗?
首先,您需要确定您正在运行Web服务器的计算机的IP地址或名称。 我假设你在Mac上运行Web服务器,因为你标记你的后期macosx
尽pipe指令是类似的Linux机器。 所以,在你的Mac上:
Terminal.app
。 它在Applications->Utilities
。 ifconfig
。 这将显示您机器上的所有networking接口。 其中之一是您的机器正在连接的networking。 如果你的Mac有线连接应该是en0
。 在inet
之后记下地址 – 这应该是您的机器使用的地址。
nc -v 192.168.10.1 3000
从服务器连接到该地址。
Connection to 192.168.10.1 3000 port [tcp/http] succeeded!
。 ctrl-C
退出nc会话。 如果您无法连接到服务器的真实地址上的应用程序,这意味着您的应用程序不在该地址上进行侦听。 您将需要调查如何更改您的应用程序configuration来修改该行为。 由于我不知道你正在运行什么应用程序,我不能提供任何好的想法。
使用hostname
(在terminal提示符下)find您的Mac的名称,并在您的URL中使用。 例如http://Tonys-iMac.local:3000 /
如果由于某种原因,Bonjour在您的环境中无法使用,请在iMac或MacBook上查找机场的地址
ipconfig getifaddr en1
或一般与
ipconfig getifaddr $(route -n get default|awk '/interface/ { print $2 }')
基本上,从防火墙设置,您可以允许某个应用程序(如ruby)接受传入的连接。 此外,为了允许访问外部世界(例如www),您需要通过路由器设置将stream量转发到您的内部网关:端口。
以下是如何做到这一点:
打开路由器上的一个端口(通过192.168.1.1)将stream量从your_web_ip:port转发到local_gateway:端口
完成。 现在从远程计算机,打开浏览器到您的networkingIP地址(通过http://www.whatismyip.com/)+目的地端口#上面,例如72.189.194.65:3280,这将连接到您的本地192.168.1.4 :3000
注意:我在Mac OSX 10.7.5上运行
127.0.0.1是每台计算机本身的本地地址。 您必须找出机器的真实IP地址(或主机/ Bonjour名称)。 进入系统首选项,networking,并查找机器的IP,无论是使用电缆的以太网端口,还是使用无线局域网的机场。 然后在iPhone上的Safari中使用:3000部分打开此地址。
如果应用程序仅在127.0.0.1:3000上侦听,则无法从另一台计算机访问它。 要做到这一点,你需要修改configuration来侦听IP或0.0.0.0(所有可用的接口)。这就是选项之一。
第二个选项是使用代理。
第三个选项是,如果你可以从iPhone的SSH你也可以使用SSH转发。
ssh user @ host -L 3000:127.0.0.1:3000
然后在你的iphone上打开127.0.0.1:3000
你有没有尝试过,它为我工作(我不隶属于它):