如何从另一台电脑访问笔记本电脑上的本地Web服务器?

我在127.0.0.1:3000的计算机上运行了一个应用程序

我想从连接到同一networking的iPhone访问该应用程序。 我之前做过这些,但却没有做到这一点。 有任何想法吗?

首先,您需要确定您正在运行Web服务器的计算机的IP地址或名称。 我假设你在Mac上运行Web服务器,因为你标记你的后期macosx尽pipe指令是类似的Linux机器。 所以,在你的Mac上:

  • 打开Terminal.app 。 它在Applications->Utilities
  • 在terminal中运行ifconfig 。 这将显示您机器上的所有networking接口。 其中之一是您的机器正在连接的networking。 如果你的Mac有线连接应该是en0 。 在inet之后记下地址 – 这应该是您的机器使用的地址。
    • 假设你发现它是192.168.10.1。
  • validation您可以使用nc -v 192.168.10.1 3000从服务器连接到该地址。
    • 您应该看到一个消息,如Connection to 192.168.10.1 3000 port [tcp/http] succeeded!
    • 如果这不起作用,请参阅下文。
    • 如果确实有效,按ctrl-C退出nc会话。
  • 现在尝试在您的客户机上连接。
    • 如果这是一个networking应用程序,你应该能够通过浏览器连接
    • 例如,尝试http://192.168.10.1:3000

如果您无法连接到服务器的真实地址上的应用程序,这意味着您的应用程序不在该地址上进行侦听。 您将需要调查如何更改您的应用程序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量转发到您的内部网关:端口。

以下是如何做到这一点:

  1. Mac->系统首选项 – >共享 – >启用“Web共享”checkbox
  2. Mac->系统首选项 – >安全 – >允许你的应用程序(如ruby)接受传入的连接
  3. 打开路由器上的一个端口(通过192.168.1.1)将stream量从your_web_ip:port转发到local_gateway:端口

    1. 例如从我的Verizon的路由器设置 – >端口转发 – >创build规则:转发到本地网关(例如192.168.1.4),自定义端口,协议TCP,源=任何,目的地= 3280,所有连接types,转发到端口= 3000。

完成。 现在从远程计算机,打开浏览器到您的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

你有没有尝试过,它为我工作(我不隶属于它):

https://github.com/progrium/localtunnel