"localhost"这个名称只是指向你自己的计算机回环地址。要在Android上访问它,你需要找到计算机的IP地址。
最常见的找到这些信息的方法,在Mac和Linux系统上都适用,就是进入终端并输入ifconfig
命令。查找"en0"或"en1",然后在该条目下查找"inet"列表。它将类似于"192.168.1.100"。当你找到这个地址时,就可以在浏览器的地址栏里输入它了。
(在Mac电脑上,你也可以前往"系统偏好设置"中的"共享"选项卡,那里会告诉你该地址。)
ifconfig
而不是我最近从PC切换到Mac时错误输入的 ipconfig
。花费了相当长的时间才发现这个打字错误。 - SMBiggs以下是让您的本地主机可用于其他设备测试的快速待办事项:
1)确定您的Android IP地址:选择您连接的Wi-Fi(与Mac连接的相同),您将在其上详细说明IP地址。例如:我们假设您的Android IP地址为192.168.0.10。
2)在Mac上打开Shell并编辑您的主机:
sudo nano /etc/hosts
3) 编辑文件如下:
127.0.0.1 192.168.0.10
4) 确定您的 Mac IP 地址:(正如 @Chuck 完美解释的那样) (在您的 shell 中):
ifconfig
5) 打开你手机上使用的最喜欢的网页浏览器,并直接连接到你的Mac IP地址(如有需要,请带上端口号),例如:
http://192.168.x.x:8000/
6) 祝您测试愉快 :)
请注意,您可以对连接到您的Wi-Fi上的每个支持设备都执行此操作。
ifconfig | grep 192
。 - Maxim Yefremovifconfig | grep 192
将返回两个IP地址:inet
和broadcast
。使用inet
旁边的那个。 - Chris Perry假设您的移动设备和计算机在同一网络上,Chunk的回答是正确的。然而,如果您想让localhost服务器对更广泛的互联网可见(例如,在3G上进行测试、开发Webhooks或与远程同事/客户合作),则需要更多的操作,因为本地地址(以10.* 或 192.168.*开头)对更广泛的互联网不可见。
传统的解决方案是端口转发和动态DNS,但最近出现了几个旨在简化该过程的服务(免责声明:我是其中一个PageKite的作者)。
这些服务为您提供公共DNS名称和软件,将您的“localhost”连接到云中继服务器(也称为反向代理)。例如,如果您使用PageKite,则可以在终端中运行以下命令:
$ pagekite.py 80 yourname.pagekite.me
...从http://yourname.pagekite.me/
创建到运行在http://localhost:80
上的Web服务器的映射。当程序正在运行时,您的localhost站点将对互联网的其他部分可见。为了使它再次私有,您只需关闭pagekite.py连接器程序。
为了完整起见,以下是我所知道的一些本地主机隧道服务:
(很抱歉没有链接到最后两个,因为SO的垃圾邮件保护措施防止我对我的竞争对手公平。;-)
这对我来说是在本地网络上访问Rails服务器的有效方法:
/etc/hosts应该有以下条目:
127.0.0.1 192.168.100.12
192.168.100.12是通过在终端中运行ifconfig命令找到的IP地址。
使用以下命令启动rails服务器:
rails server -b 0.0.0.0 -p 8080
我能够通过http://192.168.100.12:8080/访问我的本地主机。 -b 0.0.0.0
解决了我的问题!我为此苦恼了很久。谢谢! - Tristan Ratchford(我与此无任何关联)
此外,如果您想要在Android/iOS设备上测试使用Angular开发的PWA应用程序,则需要使用:
ng serve --host 0.0.0.0
命令启动服务器CLI。
如果您收到“Invalid Host Header”错误,请使用:
ng serve --host 0.0.0.0 --disableHostCheck true
阅读完这个帖子后(并尝试过建议),我整理了一份解决此问题的单一指南。 这是链接,包含每个步骤的截图和查找位置 或者下面是文本。感谢您的帮助!
首先,您的手机和笔记本电脑必须连接到同一个WiFi网络。如果您使用手机的热点,它仍将起作用。但是,在继续之前,请确保将两台设备连接到同一网络。
接下来,收集您的手机IP地址。为此,我使用Network Info II应用程序。肯定有其他方法可以完成此操作。但是,为了本教程而言,Network Info II可行且符合要求。
现在在您的计算机上打开终端(不用担心您所在的目录),运行命令sudo nano /etc/hosts/。输入系统密码后,您会在终端顶部看到一个数字串,后面跟着localhost一词。实际上,localhost只是计算机自己的服务器地址的别名,因此当您在浏览器中访问localhost时,它只是将http请求路由到本地机器。为了将您的手机连接到此循环中,请在数字串和localhost之间输入其IP地址。MacOS Catalina 10.15.4
en0: flags0=<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 0
...
inet 192.168.0.123 netmask 0xffffff00 broadcast 192.168.0.255
...
http://<IP address found in en0 -> inet>:<port if needed>
虽然已有一个答案被接受,但这个方法对我很有效:
ifconfig
并查找 en0/en1 -> inet
,它应该类似于19*.16*.1.4
)。打开手机设置,进入网络-> 长按你的WiFi网络->修改网络->向下滚动到高级选项->选择手动代理,在代理主机名中键入你的地址,即19*.16*.1.4
,在端口内输入你的端口号,保存。
在Google Chrome中搜索“我的IP是什么”,并获取你的IP地址,假设它是1**.1**.15*.2**
。
1**.1**.15*.2**:port/
。就是这么简单。
对于MacOS,打开系统偏好设置 > 网络。
您应该会看到消息“并且具有IP地址:我的IP地址”
那就是您的IP地址,在浏览器中导航到http://my-ip-address/port-number。请记住不要在http中添加“s”。