Answers:
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>
注意:该ifconfig
命令已被弃用,因此在Debian Linux上默认从Debian Stretch开始丢失。在Debian Linux上检查网络配置的新推荐方法是ip命令。例如,要使用ip命令显示网络配置,请运行以下命令:
ip address
上面的ip命令可以缩写为:
ip a
如果您仍然希望将其ifconfig
用作日常sys admin例程的一部分,则可以轻松将其作为net-tools
软件包的一部分进行安装。
apt-get install net-tools
参考在这里
实际上很简单。
localhost
(我正在使用Windows的WAMP服务器)ipconfig
完成此操作后,您将看到类似以下内容的内容:
无线局域网适配器无线网络连接: 特定于连接的DNS后缀。: 链接本地IPv6地址。。。。。:fe80 :: 80bc:e378:19ab:e448%11 IPv4地址。。。。。。。。。。。:192.168.43.76 子网掩码 。。。。。。。。。。。:255.255.255.0 默认网关 。。。。。。。。。:192.168.43.1
192.168.43.76
)注意:请将您的网络设置为“ 家庭网络 ”。将网络设置为家庭网络意味着您允许PC与同一网络上的其他设备共享内容。
如果您使用的是Windows 10,则可以使用以下方法完成此操作:
如果您遇到问题,则最有可能与Windows防火墙有关。
我通过启用远程管理实现了这一目标:
System preferences/sharing
您将看到类似于以下消息:
some.url.com
在您的Android设备上,您现在应该可以转到some.url.com
,localhost
在Mac上将其委托给。您也可以使用ifconfig
来获取Mac的IP地址。
ngrok
(带有Node.js的任何操作系统)如果您不介意使用临时域来公开您的项目,则可以使用ngrok
。可以说我有一个可以运行的应用程序,localhost:9460
我可以简单地编写
npm install ngrok -g
ngrok http 9460
这会给我:
在线会话状态 更新可用更新(版本2.2.8,Ctrl-U进行更新) 版本2.2.3 美国(美国)地区 Web界面http://127.0.0.1:4040 转发http://f7c23d14.ngrok.io->本地主机:9460 转发https://f7c23d14.ngrok.io->本地主机:9460 连接ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00 0.00
我现在可以https://f7c23d14.ngrok.io
作为一种远程查看的方式localhost
。与客户共享设计工作或进度非常好。
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 a unique port
server_name ~^(local|local\.m).example.com$;
# ...
}
重新加载并访问 http://youripaddress:81
192.168.0.101
但是主机名不起作用。
使用简单的解决方案(laptop_ip_addr:port
当移动设备和笔记本电脑位于同一WiFi上时,仅可从移动设备进行访问),我收到ERR_CONNECTION_REFUSED错误。也就是说,我的MacBook似乎拒绝了来自手机的连接尝试。
该解决方案的工作对我来说(有一台MacBook测试):
adb reverse tcp:4000 tcp:4000
4000
http://localhost:4000/
,它实际上将连接到笔记本电脑,而不是移动设备见说明 此处的。
不利之处在于,这一次只能与一个移动设备一起使用。如果要使用其他移动设备进行访问,则必须先断开第一个移动设备的连接(禁用USB调试),然后连接新的移动设备(启用USB调试)),然后adb reverse tcp:4000 tcp:4000
再次运行。
另一个应该一直有效的解决方案是 ngrok(如其他答案中所述)。它可以通过Internet而不是本地网络运行。
它非常易于使用:
brew cask install ngrok
ngrok http 4000
除其他信息外,这将输出类似
Forwarding http://4cc5ac02.ngrok.io -> localhost:4000
现在,您可以http://4cc5ac02.ngrok.io
在连接到Internet的任何设备上导航到,并且此URL重定向到localhost:4000
您的笔记本电脑。
请注意,只要ngrok命令正在运行(直到您按Ctrl-C),您的项目就会公开提供。拥有URL的每个人都可以看到它。
我找到了解决该问题的快速方法。试试这个链接。它应该可以帮助您解决问题。
我只更改了一件事,本教程指出您将“ 127.0.0.1”更改为“全部”,而是将其更改为运行服务器的IP地址。
之后,您应该能够连接到本地主机。
以下是链接页面中信息的(校对)副本:
安装Wamp服务器(或您喜欢的任何其他服务器)。
我知道这是设置本地服务器的最佳服务器之一。如果已安装Apache或任何其他服务器,请忽略此步骤。
从此处下载并安装Wamp Server。
在Windows防火墙中为端口80添加新规则。
打开控制面板,然后选择Windows防火墙。
从Windows防火墙设置页面的左侧面板中选择高级设置。
从左侧面板中选择“入站规则”,然后选择“新建规则”。
选择端口,然后单击下一步。
选择“特定本地端口”单选按钮,然后输入80作为端口值。
保持“允许连接”不变,然后继续下一步。
保持配置文件选项不变,然后单击下一步。
为您的新规则命名,然后单击“完成”。
这将启用本地网络IP上的端口80访问。
编辑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
找到“ 127.0.0.1”并将其替换为“全部”,保存文件,然后重新启动Wamp服务器。
查找您的本地网络IP。
打开命令提示符。
输入并输入ipconfig
命令。
在我的情况下,我的局域网地址是10.0.0.2。
这是您需要通过wifi访问Android手机上的本地主机的IP。要测试其是否正常运行,请在安装了localhost服务器的桌面浏览器中键入此IP地址。浏览器应成功显示您的本地主机页面。这将确保您可以在Android手机上成功访问此本地网络IP。
我希望本教程将帮助您通过wifi访问本地主机。
# onlineoffline tag - don't remove Order Allow,Deny Allow from all
在Windows PC上,除了使用“ ipconfig”命令找出IPv4地址外,您可能不需要执行其他任何操作。
其他环境详细信息:Windows 7,Google Nexus 4(4.2.2),Tomcat服务器,Grails应用程序。
您还应该确保您具有访问AndroidManifest文件中的Internet的权限:
<uses-permission android:name="android.permission.INTERNET"/>
java.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
但是,还有一个更好的解决方案。您可以使用IP地址“ 10.0.2.2”访问主机。这是由Android团队以这种方式设计的。因此,您的网络服务器可以完美地在localhost上运行,您可以从Android应用通过“ http://10.0.2.2:8080”访问它。
由于这是一个古老的问题,因此有一种非常简单的新方法可以做到这一点。下载ADB Chrome扩展程序,然后按照以下说明进行操作:
https://developers.google.com/chrome-developer-tools/docs/remote-debugging
“适用于Android的Chrome上的端口转发可轻松在移动设备上测试您的开发站点。它的工作原理是在移动设备上创建一个侦听TCP端口,该端口映射到开发计算机上的特定TCP端口。这些端口之间的流量通过USB传输,因此连接不取决于您的网络配置。”
此处提供更多详细信息:https : //developer.chrome.com/devtools/docs/remote-debugging#port-forwarding
当您的移动设备和计算机不在同一网络中时,可以使用此解决方案:
在这种情况下,您需要使用端口转发。在Google Chrome浏览器检查窗口(chrome:// inspect)中,您可以看到已连接的设备。
单击“端口追随”按钮,然后将一个随机端口(例如3000)设置为笔记本电脑使用的端口(例如8080)。
现在使用设备上的localhost:3000访问笔记本电脑中的localhost:8080(or_whatever_ip:portno)。您可以在移动浏览器中检查它。在移动浏览器中尝试localhost:3000。确保选中“端口转发设置”窗口中的“启用端口转发”复选框
以管理员身份运行CMD
并在CMD屏幕上键入ipconfig,屏幕将显示文本
作为这张照片
并且您可以使用此IP访问本地主机,并且必须将PC连接到同一网络
尝试转到此文件:
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
并将10.0.2.2更改为您的IP地址。
使用多个不同的localhost服务器遇到此问题。最终,仅使用Python简单服务器即可在几秒钟内启动我的应用程序并在电话上运行。只需要几秒钟,因此在尝试任何更复杂的解决方案之前值得尝试。首先,请确保您已安装Python。cmd+r
并python
在Windows或$ python --version
Mac终端中输入。
下一个:
cd <your project root>
$ python -m SimpleHTTPServer 8000
然后,只需在网络上找到您的主机的地址即可,这是我System Preferences/Sharing
在Mac上使用的地址。将其点击到您的Android设备中,然后应加载您的index.html
,您应该会不错。
如果不是,那么问题就出在别的地方,您可能需要研究其他一些建议的解决方案。祝好运!
*编辑*
如果您使用的是Chrome浏览器,另一种快速的解决方案是Web Server for Chrome扩展程序。我发现这是一种在手机上访问localhost的快捷简便的方法。只需确保检查Accessible to local network
下Options
,它就可以在您的单元上正常工作了,没有任何问题。
ngrok允许您将localhost放置到临时服务器上,并且设置非常简单。我在此处提供了一些可在链接中找到的步骤:
ngrok http [port number]
您会在终端中看到一个小的仪表板,其地址指向您的本地主机。将您的应用指向该地址,然后构建您的设备。
默认的localhost的更简单方法是使用http:// localhost:port。这也适用于笔记本电脑和Android。
如果它不起作用,则在android中将手机的默认IP设置为127.0.0.1:port :)
打开终端并输入:-
hostname -i
#127.0.0.1
hostname -I
#198.168.*.*
首先,使您的机器(服务器正在运行)的IP地址静态。在android代码中输入此静态IP地址。接下来转到您的wifi路由器界面,然后检查左侧面板。您将看到诸如端口转发/转发之类的选项。单击它并转发端口80。现在编辑htttpd.conf
文件并对其进行编辑
全部允许
。重新启动服务器。现在一切都应该正常工作。
另外,您可以保留计算机的IP地址,以便始终将其分配给您。在路由器界面的左侧面板中,找到DHCP -> Address Reservation
,然后单击它。输入您机器的MAC地址和您在代码中输入的IP地址。点击保存。这将为您的计算机保留给定的IP地址。
一种基于笔记本电脑将移动设备连接到wamp服务器的解决方案:
首先,wifi不是路由器。因此,要将我的移动设备连接到基于笔记本电脑上的localhost的wamp服务器,我需要一个路由器。我已经下载并安装了免费的虚拟路由器:https : //virtualrouter.codeplex.com/
配置它非常简单:
然后,您可以通过启动浏览器并通过设备连接到笔记本电脑,并填写笔记本电脑的IPV4地址(要在Windows上找到它,请输入cmd:ipconfig,然后找到ipv4地址)
您应该看到您的wamp服务器主页。
尽管一个答案已被接受,但这对我有用:
ifconfig
在终端内键入,并查找en0/en1 -> inet
类似的东西19*.16*.1.4
。)(在Windows上,使用`ipconfig)打开您的移动设置,然后转到网络->长按wifi网络->修改网络->向下滚动至高级选项->选择代理手册,然后在代理主机名中输入您的地址,即19*.16*.1.4
在端口内输入您的端口。并保存。
what is my ip
在谷歌浏览器中搜索,并获取您的IP,可以说是1**.1**.15*.2**
1**.1**.15*.2**:port/
从您的移动设备访问 。就这么简单。
这对我有用,我在127.0.0.1 ip之后添加了另一行,以指定要使用的设备的确切本地IP地址(而不是公共ip地址)。就我而言,我的三星Galaxy S3
根据Bangptit的建议,编辑httpd.conf文件(x为版本号):C:\ wamp \ bin \ apache \ Apache2.xx \ conf \ httpd.conf
搜索onlineoffline标记并添加电话的IP(我在路由器配置页面中找到了电话的IP地址):
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.1.65
Allow from ::1
Allow from localhost
可以将其扩展为包括整个子域,例如192.168.1.0/24等
Ngrok是最好的解决方案。如果您正在开发PHP,那么我建议您安装Laravel Valet,它具有MacOS和Linux版本,那么您可以使用valet share
command。如果您正在开发任何前端技术并且需要共享3000之类的端口,请直接使用ngrokngrok http 3000
为将来的开发人员添加解决方案。
您的IP地址的复制地址。右键单击您的网络->网络和共享->单击您当前拥有的连接->详细信息->然后ipv4地址旁边的地址就是您的ip地址,请在某处记下
转到控制面板->系统和安全-> Windows防火墙->高级设置->入站规则->新规则(按照添加端口的步骤进行操作,例如80,操作起来非常简单)
将您记下的IP地址记录在手机浏览器中,并将您为其创建规则的端口号放在旁边。例如192.168.0.2:80和wala。
如果未连接,可能的解决方案。右键单击“网络”->“打开网络并共享”->在“连接类型”下的“连接名称”下查看活动的连接,如果连接是公共的,则单击它,并确保将其更改为家庭网络。
使用connectify
和xampp
等价,然后在移动网址栏上输入ip地址进行访问