我如何从我的Android设备访问我的本地主机?

我可以使用Android模拟器访问我的笔记本电脑Web服务器,我使用的是10.0.2.2:portno

但是当我连接真正的Android手机时,手机浏览器无法连接到笔记本电脑上的同一个网络服务器。 手机使用USB电缆连接到笔记本电脑。 如果我运行adb devices命令,我可以看到我的手机。

我错过了什么?


USB不为移动设备提供网络。

如果您的桌面和手机都连接到相同的WiFi (或任何其他本地网络),则使用由路由器(不是localhost而不是127.0.0.1 )分配的桌面IP地址。

要找出您的桌面的IP地址:

  • 键入命令行ipconfig (Windows)或ifconfig (Unix)
  • 将会有一堆IP
  • 尝试所有这些(除了前面提到的localhost127.0.0.1
  • 如果你的手机连接到移动网络 ,那么事情会变得更加困难。

    要么硬核:

  • 首先找出你的路由器的外部IP地址(https://www.google.de/search?q=myip)
  • 然后在路由器上将某个端口转发到<your desktop IP>:<server port number>
  • 最后使用外部IP地址和转发端口
  • 否则,请使用xip.io或ngrok之类的东西。


    这很简单。

    打开Android手机/路由器的Wifi Hotspot并将笔记本电脑连接到手机。

    在localhost启动你的服务器(我正在使用wamp服务器)

    现在打开命令提示符并输入ipconfig命令,您将获得以下内容

    Wireless LAN adapter Wireless Network Connection:
      Connection-specific DNS Suffix  . :
      Link-local IPv6 Address . . . . . : fe80::80bc:e378:19ab:e448%11
      IPv4 Address. . . . . . . . . . . : **192.168.43.76**
      Subnet Mask . . . . . . . . . . . : 255.255.255.0
      Default Gateway . . . . . . . . . : 192.168.43.1
    

    在您的手机浏览器中复制这个192.168.43.76

    注意:请将您的网络设置为“家庭网络”。 设置家庭网络意味着让您的电脑与同一网络上的其他设备共享资料。 如果您使用的是Windows 10,请转到WiFi>当前网络的网络属性>将此PC设为可发现。


    mac osx用户

    我通过启用远程管理取得了成功:

  • 确保您的phone and laptop are connected to the same wifi network
  • 在Mac上,转到system preferences/sharing
  • enable remote management
  • 你会看到类似这样的消息

    其他用户可以使用地址some.url.com来管理您的计算机

    在你的Android设备上,你现在应该可以打到some.url.com ,它代表你的Mac上的localhost 。 你也可以使用ifconfig来获取你的macbook的ip


    使用ngrok的便携式解决方案(任何带有节点或npm的操作系统)

    如果您不介意将您的项目暴露给临时域,那么您可以使用ngrok 。 假设我有一个在localhost:9460上运行的应用程序

    npm install ngrok -g
    ngrok http 9460
    

    这会给我:

    Session Status                online
    Update                        update available (version 2.2.8, Ctrl-U to update)
    Version                       2.2.3
    Region                        United States (us)
    Web Interface                 http://127.0.0.1:4040
    Forwarding                    http://f7c23d14.ngrok.io -> localhost:9460
    Forwarding                    https://f7c23d14.ngrok.io -> localhost:9460
    
    Connections                   ttl     opn     rt1     rt5     p50     p90
                                  0       0       0.00    0.00    0.00    0.00
    

    我现在可以通过https://f7c23d14.ngrok.io作为远程查看本地主机的一种方式。 分享设计工作或与客户共同进步是非常好的


    使用nginx代理传递替代解决方案

    如果你通过nginx proxy_pass运行这样的东西,它需要稍微调整一下 - 这是一个很冒险的方法,但它适用于我,我很乐意提供改进它的建议:

  • 启用远程管理(如上所述)
  • 暂时将服务器设置为在端口81上监听,而不是在80端口上监听
  • sudo nginx -s reload
  • 请访问http://youripaddress:81
  • ```

    server {
      listen 80;
      listen 81; # <-------- add this to expose the app on unique port
      server_name  ~^(local|local.m).example.com$;
      ...
    }
    

    重新加载并访问http://youripaddress:81

    链接地址: http://www.djcxy.com/p/23687.html

    上一篇: How can I access my localhost from my Android device?

    下一篇: R cannot be resolved