我可以使用Android模拟器访问我的笔记本电脑网络服务器,我使用10.0.2.2:portno
效果很好.
但是当我连接我真正的Android手机时,手机浏览器无法连接到笔记本电脑上的同一个Web服务器.手机通过USB线连接到笔记本电脑.如果我运行adb devices命令,我可以看到我的手机.
我错过了什么?
Eli*_*ine 344
USB不向移动设备提供网络.
如果您的桌面和手机都连接到相同的WiFi(或任何其他本地网络),请使用路由器分配的桌面IP地址(不是但localhost不是127.0.0.1).
要查找桌面的IP地址,请执行以下操作:
ipconfig(Windows)或ifconfig(Unix)
ifconfig | grep "inet " | grep -v 127.0.0.1将只产生重要的东西localhost和127.0.0.1)如果您的手机已连接到移动网络,那么事情就会变得更加艰难.
去硬核:
<your desktop IP>:<server port number>Dhi*_*dya 205
这很简单.
打开Android手机/路由器的Wifi热点,将笔记本电脑连接到手机.
在localhost启动你的服务器(我正在使用wamp服务器)
现在打开命令提示符并输入ipconfig命令,您将获得以下内容
ipconfig
Run Code Online (Sandbox Code Playgroud)
在您的移动浏览器中复制此192.168.43.76.
注意:请将您的网络设置为"家庭网络".设置家庭网络意味着允许您的PC与同一网络上的其他设备共享内容.如果您使用Windows 10转到WiFi>当前网络的网络属性>使此PC可发现.
lfe*_*445 64
i had success by enabling remote management:
- ensure your
System preferences/sharing- on mac, go to
some.url.comsome.url.com
You will see a message similar to this
Other users can manage your computer using the address
localhost
On your android device you should now be able to hit ifconfig, which delegates to ngrok on your mac. You can also use ngrok to get the ip of your macbook
If you don't mind exposing your project with a temporary domain you can use localhost:9460. Lets say I have an app that runs on https://f7c23d14.ngrok.io
npm install ngrok -g
ngrok http 9460
Run Code Online (Sandbox Code Playgroud)
This will give me:
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
I can now reach localhost as a way to remotely view localhost. This is great to share design work or progress with clients
If you are running something like this through nginx proxy_pass it will require a bit more tweaking - this is a hacky approach, but it works for me and i am open to suggestions on improving it:
nginx as opposed to nginx proxy_pass8180```
sudo nginx -s reload
Run Code Online (Sandbox Code Playgroud)
reload and visit http://youripaddress:81
wei*_*eld 57
通过简单的解决方案(只需laptop_ip_addr:port从移动设备访问,当移动设备和笔记本电脑在同一个WiFi上时),我收到ERR_CONNECTION_REFUSED错误.也就是说,我的MacBook似乎拒绝了我手机的连接尝试.
此解决方案适用于我(使用MacBook测试):
adb reverse tcp:4000 tcp:4000
4000http://localhost:4000/它,它实际上将连接到笔记本电脑,而不是移动设备见说明这里.
缺点是,这一次只适用于单个移动设备.如果要使用其他移动设备进行访问,则必须首先断开第一个(禁用USB调试),连接新的(启用USB调试),然后adb reverse tcp:4000 tcp:4000再次运行.
另一个应该始终有效的解决方案是ngrok(如其他答案中所述).它适用于Internet,而不是本地网络.
它非常易于使用:
brew cask install ngrok
ngrok http 4000
Run Code Online (Sandbox Code Playgroud)
这在一些其他信息中输出一行
Forwarding http://4cc5ac02.ngrok.io -> localhost:4000
Run Code Online (Sandbox Code Playgroud)
现在,您可以导航到http://4cc5ac02.ngrok.io连接到Internet的任何设备,并且此URL会重定向到localhost:4000您的笔记本电脑.
请注意,只要ngrok命令正在运行(直到您按Ctrl-C),您的项目就会公开提供.拥有URL的每个人都可以看到它.
小智 37
当您的移动设备和计算机不在同一网络中时,此解决方案可用:
在这种情况下,您需要使用端口转发。在 Google chrome 检查窗口 (chrome://inspect) 中,您可以看到连接的设备。

单击端口转发按钮,然后将一个随机端口(例如 3000)设置为您的笔记本电脑使用的端口(例如 8080)。
现在使用 localhost:3000 从设备访问笔记本电脑中的 localhost:8080(or_whatever_ip:portno)。您可以在手机浏览器中查看。在移动浏览器中尝试 localhost:3000。确保选中“端口转发设置”窗口中的“启用端口转发”复选框
Ger*_*rtV 35
我找到了这个问题的快速解决方案.试试这个链接.它应该可以帮助您解决问题.
我只更改了一件事,教程声明您将"127.0.0.1"更改为"全部",而是将其更改为运行服务器的IP地址.
之后,您应该能够连接到本地主机.
以下是链接页面信息的(校对)副本:
安装Wamp服务器(或您喜欢的任何其他服务器).
这是我知道设置本地服务器的最佳服务器之一.如果已安装Apache或任何其他服务器,请忽略此步骤.
从这里下载并安装Wamp Server.
在Windows防火墙中为端口80添加新规则.
打开"控制面板"并选择"Windows防火墙".
从Windows防火墙设置页面的左侧面板中选择高级设置.
从左侧面板中选择Inbound Rules,然后选择New Rule.
选择Port,然后单击Next.
选择"特定本地端口"单选按钮,然后输入80作为端口值.
保持允许连接不变并转到下一步.
保持Profile选项不变,然后单击Next.
为新规则指定一个好名称,然后单击"完成".
这将使端口80能够访问本地网络IP.
编辑Wamp服务器的httpd.conf文件以修复403错误.
我们需要编辑这个文件.否则,当我们通过本地网络IP访问本地主机时,我们将收到403禁止错误.
单击Wamp服务器托盘图标.
打开Apache服务器子菜单.
选择httpd.conf.
在httpd.conf文件中找到此配置部分:
Directory “c:/wamp/www/”
#
# Possible values for the Options directive are “None”, “All”,
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that “MultiViews” must be named *explicitly* — “Options All”
# doesn’t give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride all
#
# Controls who can get stuff from this server.
#
# onlineoffline tag – don’t remove
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Run Code Online (Sandbox Code Playgroud)使用"全部"查找并替换"127.0.0.1",保存文件,然后重新启动Wamp服务器.
找到您的本地网络IP.
打开命令提示符.
输入并输入ipconfig命令.
就我而言,我的局域网地址是10.0.0.2.
这是您通过wifi访问Android手机上的本地主机所需的IP.要测试它是否正常工作,请在安装了localhost服务器的桌面浏览器中键入此IP地址.浏览器应该成功显示您的localhost页面.这将确保您的Android手机上现在可以成功访问此本地网络IP.
我希望本教程能帮助您通过wifi访问本地主机.
San*_*mar 35
在Windows PC上您可能不需要使用"ipconfig"命令查找IPv4地址.
其他环境详情:Windows 7,谷歌Nexus 4(4.2.2),Tomcat服务器,Grails应用程序.
您还应该确保您拥有在AndroidManifest文件中访问互联网的权限:
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)
Akh*_*ain 13
然而,有一个更好的解决方案.您可以使用IP地址"10.0.2.2"访问主机.这是由Android团队以这种方式设计的.因此,您的网络服务器可以在localhost上完美运行,您可以通过"http://10.0.2.2:8080"从Android应用程序访问它.
Jas*_*son 12
由于这是一个老问题,有一种新的方法可以做到这一点非常简单.下载亚行Chrome扩展程序,然后按照以下说明操作:
https://developers.google.com/chrome-developer-tools/docs/remote-debugging
Windows解决方案:
您无法查看您的网站,主要是因为您的防火墙(默认操作系统防火墙或防病毒防火墙)正在阻止传入连接。
在 Windows 防火墙上:
要允许特定端口上的传入连接,请转至:
控制面板 > Windows Defender 防火墙 > 高级设置 > 右键单击入站规则 > 添加新规则。
然后 :
- 选择“端口”单选按钮。
- 输入您想要启用传入连接的特定端口/范围(您的服务器正在运行的端口)
- 选择“允许连接”单选按钮。
- 单击“下一步” (除非您想更改默认值)
- 为您的规则命名并单击完成。
笔记:
如果您使用具有防火墙的防病毒软件,则上述步骤将不起作用,因为防病毒软件会禁用 Windows 防火墙并运行自己的防火墙。
在这种情况下,根据防病毒程序,转到防病毒程序的防火墙设置并打开端口。
"Chrome for Android上的端口转发可以让您轻松在移动设备上测试您的开发网站.它可以通过在您的移动设备上创建一个映射到开发计算机上特定TCP端口的侦听TCP端口来实现.这些端口之间的流量通过USB传输,所以连接不依赖于您的网络配置."
更多详细信息:https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding
在您的 ubuntu/Macbook 中使用它来获取您系统的 IP 地址。您的手机和系统应该在同一个网络中
ip addr | grep inet这会给你一个看起来像192.168.168.46. 在您的智能手机中使用它。
希望这可以帮助。
小智 5
尝试转到此文件:
C:\wamp\bin\apache\Apache2.2.11\conf\httpd.conf
# onlineoffline tag - don't remove
Order Deny,Allow
Allow from all // change it Deny
Allow from 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
并将10.0.2.2更改为您的IP地址。
以管理员身份运行CMD
并在CMD屏幕上键入ipconfig,屏幕将显示文本
作为这张照片

而且您可以使用此IP访问本地主机,并且必须将PC连接到同一网络
终于在 Ubuntu 中完成了,我在 localhost:8080 上运行 nodejs 服务器
1)打开终端类型ifconfig你会得到这样的ip:inet addr:192.168.43.17
2) 现在简单地输入这样的 url 地址:“192.168.43.17:8080”(来自本地主机端口号的 8080 端口)例如:“192.168.43.17:8080/fetch”
默认 localhost 的更简单方法是使用http://localhost:port。这也适用于笔记本电脑和 Android。
如果它不起作用,那么在android中将手机的默认IP设置为127.0.0.1:port :)
打开终端并输入:-
hostname -i
#127.0.0.1
hostname -I
#198.168.*.*
Run Code Online (Sandbox Code Playgroud)
如果您使用的是真实设备并且仍然遇到问题,请按照以下步骤操作,因为这些步骤可以帮助我解决问题:
https://localhost:44301adb reverse tcp:44301 tcp:4430144301为你的port number希望您能够毫无问题地运行。
Happy codding
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
581982 次 |
| 最近记录: |