ChatGPT解决这个技术问题 Extra ChatGPT

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

我可以使用 Android 模拟器访问我的笔记本电脑网络服务器,我正在使用 10.0.2.2:portno 运行良好。

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

我错过了什么?

请参阅此处的文档:developer.android.com/tools/devices/…
在测试您的网页时关闭防火墙或在防火墙设置中将您的 ip 添加到受信任的网络中。
与 ngrok 一起喝汤

g
geneowak

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

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

要找出您桌面的 IP 地址:

在 Linux 上的命令行中输入 ipconfig (Windows) 或 ifconfig (Unix) 单行 ifconfig | grep "inet" | grep -v 127.0.0.1 只会产生重要的东西,有很多关于如何在 Windows 上获得类似输出的建议

Linux 上的单行 ifconfig | grep "inet" | grep -v 127.0.0.1 只会产生重要的东西

有很多关于如何在 Windows 上获得类似输出的建议

会有一堆IP

尝试所有这些(除了前面提到的 localhost 和 127.0.0.1)

如果您的手机已连接到移动网络,那么事情会变得更加困难。

要么去铁杆:

首先找出您的路由器外部 IP 地址 (https://www.google.de/search?q=myip)

然后,在路由器上,将某个端口转发到 <您的桌面 IP>:<服务器端口号>

最后使用外部IP地址和转发端口

否则使用 xip.iongrok 之类的东西。

注意ifconfig 命令已被弃用,因此默认情况下在 Debian Linux 上缺失,从 Debian stretch 开始。在 Debian Linux 上检查网络配置的新推荐替代方法是 ip 命令。例如,要使用 ip 命令显示网络配置,请运行以下命令:

ip address

上面的ip命令可以简写为:

ip a

如果您仍喜欢将 ifconfig 用作日常系统管理例程的一部分,则可以轻松地将其安装为 net-tools 软件包的一部分。

apt-get install net-tools

参考是 here


我不明白这个问题的解决方案。你能帮助我了解我的电话如何访问我的服务器吗?我希望你充实这个解决方案给我。谢谢。
请阅读下面的评论。您还必须拥有互联网访问权限。
@simo 转到您的路由器主页,XFinity 为 10.0.0.1,但通常为 192.168.1.1 并登录,查找 Connected Devices 或 Local IPs ,找到您的计算机并 bam。我的是 10.0.0.#,然后只需添加 [10.0.0.#:(port)/Server/Servlet] 或其他
这不应该是这个问题的公认答案。 Chrome devtools 和 adb reverse 中的端口转发与 USB 电缆完美配合。
在 ubuntu 中,您还必须禁用防火墙,为其键入“sudo ufw disable”
E
Edwin Pratt

其实很简单。

打开您的 Android 手机/路由器的 WiFi 热点并将您的笔记本电脑连接到您的手机

在 localhost 启动您的服务器(我正在使用 Windows 的 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

复制 IPv4 地址(在本例中为 192.168.43.76)

在您的移动浏览器中,只需粘贴 IPv4 地址

注意:请将您的网络设置为“家庭网络”。将网络设置为家庭网络意味着您允许您的 PC 与同一网络上的其他设备共享内容。

如果您使用的是 Windows 10,则可以通过以下方式完成:

打开设置

转到网络和互联网

在左侧菜单中选择 WiFi

点击已连接 WiFi 的名称

将网络的网络配置文件设置为私有

如果您遇到问题,很可能与 Windows 防火墙有关。

打开控制面板

转到 Windows Defender 防火墙

点击允许应用程序或功能通过 Windows Defender 防火墙

检查应用程序是否启用了私有网络(应该有一个勾号)

如果未启用,请点击更改设置并勾选应用程序私有下的复选框


嗯这样做了,但浏览器似乎需要永远加载然后它给了我一个哎呀?难道我做错了什么?你说的家庭网络是什么意思
请记得关闭计算机中的防火墙。
*家庭网络它是(:家庭网络意味着您的计算机我允许与同一网络的设备共享内容。
“点击允许应用程序或功能通过 Windows Defender 防火墙检查应用程序是否启用了专用网络(应该有一个勾号)”你的意思是什么应用程序?
我的问题是我的网络不是私有的,非常感谢
w
weibeld

使用简单的解决方案(只需从移动设备访问 laptop_ip_addr:port,当手机和笔记本电脑在同一个 WiFi 上时),我会收到 ERR_CONNECTION_REFUSED 错误。也就是说,我的 MacBook 似乎拒绝来自我的手机的连接尝试。

ADB 反向套接字(仅限 Android)

该解决方案适用于我(使用 MacBook 测试):

使用 USB 电缆将 Android 移动设备连接到笔记本电脑 在移动设备上启用 USB 调试 在笔记本电脑上,运行 adb reverse tcp:4000 tcp:4000 使用您的自定义端口号而不是 4000 现在,在移动设备上,您可以导航到 http:// localhost:4000/,它实际上将连接到笔记本电脑,而不是移动设备

请参阅说明 here

缺点是这只适用于一次只有一个移动设备。如果你想用另一个移动设备访问,你必须先断开第一个(禁用USB调试),连接新的(启用USB调试),然后运行{ 1} 再次。

编辑:据报道,此解决方案也适用于 Windows。

ngrok(适用于所有设备)

另一个应该始终有效的解决方案是 ngrok (如其他答案中所述)。它在 Internet 上工作,而不是在本地网络上工作。

它非常易于使用:

brew cask install ngrok
ngrok http 4000

除了一些其他信息之外,这会输出一行,如

Forwarding                    http://4cc5ac02.ngrok.io -> localhost:4000

现在,您可以在任何连接到 Internet 的设备上导航到 http://4cc5ac02.ngrok.io,此 URL 将重定向到您笔记本电脑的 localhost:4000

请注意,只要 ngrok 命令正在运行(直到您按下 Ctrl-C),您的项目就会被公开提供。拥有该 URL 的每个人都可以看到它。


你救了我的命伙计
谢谢你。你帮了我很多。我使用 adb reverse 只是将 4000 端口替换为 3000,它可以按我的需要工作。
ngrok 在 linux 中对我有用,超级简单,但每次它都会给你一个不同的 url,每 2 小时过期一次
ngrok 为我工作,但我在 brew 安装时遇到了问题,一旦我注册了 ngrok 就按照此处的步骤为我工作:dashboard.ngrok.com/get-started/setup
我尝试通过反转端口,但它只工作了一次,并且在下一次启动时停止工作,所以我使用 ngrok 来实现这一点,相信我,它很棒并且工作正常。
E
Edwin Pratt

Mac OS X 用户

我通过启用远程管理实现了这一点:

确保您的手机和笔记本电脑连接到同一个 WiFi 网络

在 Mac 上,转到系统偏好设置/共享

启用远程管理

您将看到与此类似的消息:

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

在您的 Android 设备上,您现在应该可以访问 some.url.com,它代表您 Mac 上的 localhost。您还可以使用 ifconfig 获取 Mac 的 IP 地址。

使用 ngrok 的便携式解决方案(任何带有 Node.js 的操作系统)

如果您不介意使用临时域公开您的项目,您可以使用 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 作为远程查看 localhost 的一种方式。这非常适合与客户分享设计工作或进展。

使用 nginx 代理通行证的替代解决方案

如果您通过 nginx proxy_pass 运行类似的东西,则需要进行更多调整 - 这是一种 hacky 方法,但它适用于我,我愿意接受有关改进它的建议:

启用远程管理(如上所述)

暂时将服务器设置为侦听端口 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


如果您使用此“远程管理”设置,另一件有用的事情是,如果您有很多在 mamp 中运行的别名服务器,您的移动设备(通过 USB 连接)只会让您访问第一个 即在 httpd-vhosts.conf 中定义,所以只需将当前项目移至列表顶部
正如你所说,我在我的 Mac 上启用了远程管理,并且为我提供了另一组复选框,用于远程管理我的计算机的各种方式。除了观察之外,我没有检查它们,这对我来说效果很好。我的 Web 服务器在我的 Mac 上的 localhost 端口 5555 上运行,我看到“其他用户可以使用地址 10.0.0.12 管理您的计算机”,所以在手机的浏览器中我输入了 10.0.0.12:5555 并看到了我的网页。
它在使用 IP 192.168.0.101 时有效,但主机名无效。
在 Mac 上,只需 ALT+单击菜单栏中的 Wi-Fi 即可获取您的 IP 地址。
我禁用了我的防火墙,但它仍然显示连接被拒绝,知道如何让它工作吗?
S
Saman

当您的移动设备和计算机不在同一网络中时,此解决方案可用:

https://i.stack.imgur.com/bBpUz.jpg

单击端口 fowading 按钮,然后将随机端口设置为 3000 到您的笔记本电脑使用的端口,例如 8080。

https://i.stack.imgur.com/suqpB.png

现在使用 localhost:3000 从设备访问笔记本电脑中的 localhost:8080(or_whatever_ip:portno)。您可以在手机浏览器中查看。在移动浏览器中尝试 localhost:3000。确保选中“端口转发设置”窗口中的“启用端口转发”复选框


我爱你,伙计!您需要使用这些步骤编写教程!
非常好的解决方案。这应该是公认的答案
我无法表达你用这个解决方案拯救了我多少灵魂
好的!!我还想在两端(电脑和安卓)添加一些专业提示: 1.禁用防火墙。 2 检查是否有一些防病毒阻止流量
我的本地服务器 url 是 m.local.sese.com 。我如何访问它?
S
Sanjay Kumar

在 Windows PC 上,除了使用“ipconfig”命令找出您的 IPv4 地址外,您可能不需要做任何其他事情。

第 1 步:使用 USB 数据线将手机连接到 PC。

第 2 步:使用命令 'ipconfig' 找出您的 IPv4 地址(路由器的外部 IP),例如在我的情况下为 192.168.1.5。

第 3 步:只需从手机浏览器访问“192.168.1.5:8080”。有用 !

其他环境详细信息:Windows 7、Google Nexus 4 (4.2.2)、Tomcat 服务器、Grails 应用程序。

您还应该确保您在 AndroidManifest 文件中有访问互联网的权限:

<uses-permission android:name="android.permission.INTERNET"/>

我试过了,但它一直说“连接被拒绝”。为什么? :( 端口必须是 8080 吗?目前,我的 Web 服务正在另一个端口上运行。
我在端口 8080 使用 tomcat。您可以附加自己的服务器端口来代替 8080。
那么 webapp 呢?不是原生应用
我仍然无法访问我的本地主机
我试过了,但它说java.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
P
Pang

我找到了一个快速解决这个问题的方法。试试这个link。它应该可以帮助您解决问题。

我只更改了一件事,教程指出您将“127.0.0.1”更改为“全部”,将其更改为您的服务器正在运行的 IP 地址。

之后,您应该能够连接到您的本地主机。

以下是链接页面中信息的(校对)副本:

步骤1

安装 Wamp 服务器(或您喜欢的任何其他服务器)。

这是我所知道的设置本地服务器的最佳服务器之一。如果您已安装 Apache 或任何其他服务器,请忽略此步骤。

从这里下载并安装 Wamp Server。

第2步

在 Windows 防火墙中为端口 80 添加新规则。

打开控制面板并选择 Windows 防火墙。从 Windows 防火墙设置页面的左侧面板中选择高级设置。从左侧面板中选择入站规则,然后选择新建规则。选择端口并单击下一步。选择“特定本地端口”单选按钮并输入 80 作为端口值。保持允许连接不变并进入下一步。保持配置文件选项不变,然后单击下一步。为您的新规则起一个好听的名称,然后单击完成。

这将启用对本地网络 IP 的端口 80 访问。

第 3 步

编辑 Wamp 服务器的 httpd.conf 文件以修复 403 错误。

我们需要编辑这个文件。否则,当我们通过本地网络 IP 访问 localhost 时,会出现 403 禁止错误。

单击 Wamp 服务器托盘图标。打开 Apache 服务器子菜单。选择 httpd.conf。在 httpd.conf 文件中找到这部分配置: Directory “c:/wamp/www/” # # Options 指令的可能值为“None”、“All”、# 或以下任意组合: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # 注意“MultiViews”必须*明确地命名* — “Options All” # 不会给你。 # # Options 指令既复杂又重要。请参阅 # http://httpd.apache.org/docs/2.2/mod/core.html#options # 了解更多信息。 # Options Indexes FollowSymLinks # # AllowOverride 控制哪些指令可以放在 .htaccess 文件中。 # 它可以是“All”、“None”或关键字的任意组合: # Options FileInfo AuthConfig Limit # AllowOverride all # # 控制谁可以从此服务器获取内容。 # # onlineoffline 标签 - 不要从 127.0.0.1 中删除 Order Deny,Allow Deny from all Allow

查找“127.0.0.1”并将其替换为“全部”,保存文件,然后重新启动 Wamp 服务器。

第4步

查找您的本地网络 IP。

打开命令提示符。键入并输入 ipconfig 命令。就我而言,我的局域网地址是 10.0.0.2。

这是您通过 wifi 访问 Android 手机上的本地主机所需的 IP。要测试它是否正常工作,请在安装了本地主机服务器的桌面浏览器中输入此 IP 地址。浏览器应该会成功显示您的 localhost 页面。这将确保此本地网络 IP 现在可以在您的 Android 手机上成功访问。

我希望本教程能帮助您通过 wifi 访问您的 localhost。


谢谢!这很容易。就一件事;我将 httpd.conf 保留为 # onlineoffline tag - don't remove Order Allow,Deny Allow from all
教程是基于windows的吗?什么?
链接不再起作用,因此整个答案现在没有用,因为尚未将有关如何操作的信息添加到 SO。
对于 Wamp 服务器 v3,我遇到了一个禁止错误。查看此答案 stackoverflow.com/questions/23382627/…,了解如何修改 vhosts 信息(不要编辑 httpd.conf 文件,如上所示)
这是一个非常旧的 Wamp 版本,它看起来像,配置文件现在相当复杂。特别是如果您使用 VHosts 功能。我想不通,太多的覆盖层。
A
Akhil Jain

然而,有一个更好的解决方案。您可以使用 IP 地址“10.0.2.2”访问您的主机。这是由 Android 团队以这种方式设计的。因此,您的网络服务器可以在 localhost 上完美运行,并且您可以从您的 Android 应用程序通过“http://10.0.2.2:8080”访问它。


这是真的,技巧是指定您机器的本地 IP 地址并通过连接在您的 android 设备和您的机器(即系统)之间的无线路由器访问它
好点,我正在寻找这个,与本地主机通信模拟器。谢谢!!
J
Jason

由于这是一个老问题,因此有一种非常简单的新方法可以做到这一点。下载 ADB Chrome Extension,然后按照以下说明操作:

https://developers.google.com/chrome-developer-tools/docs/remote-debugging


不再需要下载已弃用的 ADB,但请转到 developers.google.com/chrome-developer-tools/docs/… 并按照说明进行操作。注意:我必须将端口 8443 转发到 localhost:8443
这仅适用于设备上 Chrome 的 url 调用,还是应该在我的应用程序中也可以使用?
这让我走上了正轨 - 可以在此处找到有关 Chrome 开发工具的最新答案:Android Chrome Reverse Port Forwarding
我卡住了,因为我的设备上没有安装谷歌浏览器。嗬!
D
Daniel

“Android 版 Chrome 上的端口转发使您可以轻松地在移动设备上测试您的开发站点。它通过在您的移动设备上创建一个侦听 TCP 端口来工作,该端口映射到您的开发机器上的特定 TCP 端口。这些端口之间的流量通过 USB 传输,因此连接不依赖于您的网络配置。”

更多详细信息:https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding


Y
Youssef Subehi

以管理员身份运行 CMD

并在 CMD 屏幕上键入 ipconfig,屏幕将显示文本

https://i.stack.imgur.com/hhIGv.png

并且您可以使用此 ip 访问您的本地主机,您必须连接到与您的 PC 连接到相同的网络


只需关闭防火墙
K
KJ Sudarshan

适用于 Windows 的解决方案:

您无法查看您的网站,主要是因为您的防火墙(默认操作系统防火墙或防病毒防火墙)阻止了传入连接。

在 Windows 防火墙上:

要允许特定端口上的传入连接,请转到:

控制面板 > Windows Defender 防火墙 > 高级设置 > 右键单击入站规则 > 添加新规则。然后: 选择“端口”单选按钮。输入您要启用传入连接的特定端口/范围(您的服务器正在运行的端口)选择“允许连接”单选按钮。单击下一步(除非您想更改默认值)为您的规则命名,然后单击完成。

笔记:

如果您使用的是具有防火墙的防病毒软件,则上述步骤将不起作用,因为防病毒软件会禁用 Windows 防火墙,而是运行自己的防火墙。

在这种情况下,根据防病毒程序,转到防病毒软件的防火墙设置并打开端口。


C
Community

您可能让您的网络服务器在您的环回接口而不是您的网络接口上侦听。这方面的主要迹象是:

点击 127.0.0.1 和 localhost(来自 localhost 或 Android 模拟器)工作

对 192.168.xxx.xxx 的点击不起作用,无论是来自 localhost、LAN 还是 WAN

我在答案 here 中详细讨论了诊断和解决此问题。


P
Peter

尝试转到此文件: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 地址。


抱歉,如果它是“拒绝”,则更改为允许所有表单
我正在使用 XAMPP,这个视频给了我让它工作的答案:youtube.com/watch?v=YrA_yN3gySs
N
Naveen T P

在您的 ubuntu/Macbook 中使用它来获取系统的 IP 地址。您的手机和系统应该在同一个网络中

ip addr | grep inet 这将为您提供一个类似于 192.168.168.46 的 IP 地址。在您的智能手机中使用它。

希望这可以帮助。


u
user3078359

我使用了这个过程:

在 PC 上安装 Fiddler

按照这些出色的说明设置 PC 和 Android 设备

只需在 Android 设备上的浏览器中输入 http://ipv4.fiddler 即可访问 localhost

请注意,此过程要求您在每次会话开始和结束时更改 Android 设备上的 WiFi 设置。我发现这比扎根我的 Android 设备更痛苦。


M
Maxwell

ngrok 可让您将 localhost 放到临时服务器上,并且设置起来非常简单。我在这里提供了一些步骤,可以在链接中找到:

从上面的链接下载 ngrok zip 打开 zip 在本地运行您的服务器并记下端口号 在终端中,转到 ngrok 所在的文件夹并输入 ngrok http [端口号]

您将在终端中看到一个小仪表板,其地址指向您的本地主机。将您的应用程序指向该地址并构建到您的设备。


这仅对从外部访问服务器有用。您可以只使用服务器的本地 IP 地址。
i
iamkdblue

终于在 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”


这仅在连接到同一网络时对我有效。我需要在没有互联网的情况下工作的东西
f
fmw42

默认 localhost 的更简单方法是使用 http://localhost:port。这也适用于笔记本电脑和 Android。

如果它不起作用,那么在 android 中将手机的默认 IP 设置为 127.0.0.1:port :)

打开终端并输入:-

 hostname -i
 #127.0.0.1
 hostname -I
 #198.168.*.*

O
Omar Khaium Chowdhury

如果您使用的是真实设备并且仍然遇到问题,请按照以下步骤操作,因为这些步骤可以帮助我解决问题:

确保移动设备和笔记本电脑都在同一个 WiFi 网络上。验证您的目标 URL 是否有端口号,如下所示:https://localhost:44301 在 Android Studio 终端上运行此命令, adb reverse tcp:44301 tcp:44301 将 44301 替换为您的端口号

希望您能够毫无问题地运行。

Happy codding

非常感谢你,就像一个魅力adb reverse tcp:<myport> tcp:<myport>
它适用于连接 vpn 的 macbook 吗?
试一试,如果不起作用,请告诉我。
F
Fred

基于我的笔记本电脑将我的移动设备连接到我的 wamp 服务器的解决方案:

首先,wifi不是路由器。因此,要将我的移动设备连接到我笔记本电脑上基于 localhost 的 wamp 服务器,我需要一个路由器。我已经下载并安装了一个免费的虚拟路由器:https://virtualrouter.codeplex.com/

配置它非常简单:

右键单击系统托盘中的虚拟路由器图标单击配置虚拟路由器如果您的互联网连接在以太网中,请填写密码,选择共享连接:以太网然后在您的笔记本电脑和设备上设置 wifi 在您的设备上连接到虚拟路由器网络名称

然后,您可以通过启动浏览器通过您的设备连接到您的笔记本电脑并填写笔记本电脑的 IPV4 地址(要在 Windows 上找到它,输入 cmd : ipconfig,然后找到 ipv4 地址)

您应该会看到您的 wamp 服务器主页。


m
mikeym

使用几个不同的本地主机服务器遇到了这个问题。最终,只需使用 Python 简单服务器,我的应用程序就可以在几秒钟内在手机上启动并运行。它只需要几秒钟,所以在进入任何更复杂的解决方案之前值得一试。首先,确保您已安装 Python。 cmd+r 并在 Windows 中输入 python 或在 mac 终端中输入 $ python --version

下一个:

cd <your project root>

$ python -m SimpleHTTPServer 8000

然后只要在网络上找到你的主机地址,我在mac上使用System Preferences/Sharing找到它。将其点按到您的 Android 设备中,应该会加载您的 index.html,您应该会很好。

如果不是,则问题出在其他问题上,您可能需要研究其他一些建议的解决方案。祝你好运!

* 编辑 *

如果您使用的是 Chrome,另一个可以尝试的快速解决方案是 Web Server for Chrome 扩展。我发现这是一种在手机上访问 localhost 的快速且超级简单的方法。只需确保选中 Options 下的 Accessible to local network,它应该可以在您的手机上正常工作,没有任何问题。

https://i.stack.imgur.com/8rOPW.png


它是否适用于 python 以外的其他服务器端语言?
H
HostMyBus

这对我有用,我在 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 地址):

onlineoffline 标签 - 不要删除

 Order Deny,Allow
 Deny from all
 Allow from 127.0.0.1

我的手机 ip 在下面一行

 Allow from 192.168.1.65 
 Allow from ::1
 Allow from localhost

也可以将其扩展到包括整个子域,例如 192.168.1.0/24 等


u
user8246589

首先将手机和电脑连接到普通wifi。

然后,使用以管理员身份运行打开命令提示符

给出 ipconfig 命令

哪个显示无线局域网ip

使用服务器的 ip:port 访问手机


r
realpac

最简单的方法(这对我来说完美无缺)是在 0.0.0.0:<port_no> 本地托管您的网站并使用移动设备访问它,在浏览器中使用 <local_ipv4_address>:<port_no>/<path>

要知道你本地的 ipv4 地址,只需在 cmd 中输入 ipconfig

任何连接到相同网络的设备都可以访问此 URL。


S
Shahzad Ansari

Ngrok 是最佳解决方案。如果您正在开发 PHP,那么我建议安装 Laravel Valet,它有 MacOS 和 Linux 版本,那么您可以使用 valet share 命令。如果你正在开发任何前端技术并且需要共享一个像 3000 这样的端口,那么直接使用 ngrok ngrok http 3000

Xampp & ngrok

您还可以在 Windows 中将 ngrok 与 Xampp 一起使用。您可以使用以下过程。这很容易和简单。

在 ngrok 上注册一个免费帐户 从下载部分下载 ngrok 文件并打开它

请注意您的 Apache 服务器正在运行的端口。我的情况是80

https://i.stack.imgur.com/ONQXF.png

在 ngrok 命令行中,输入 ngrok http YOUR_PORT 并复制转发地址

现在您可以在任何设备(即您的物理 android 设备)上使用此转发链接,它将托管您的 localhost 服务器。例如,

代替

http://localhost/my-files/

http://YOUR_FORWARDING_ADDRESS/my-files/

经过数小时尝试所有可能的解决方案后,就是这样。
A
Abhishek Singh

首先让你的机器(服务器运行的地方)IP地址是静态的。在 android 代码中输入此静态 IP 地址。接下来转到您的wifi路由器界面并检查左侧面板。您将看到诸如端口转发/转发之类的选项。单击它并转发端口 80。现在编辑您的 htttpd.conf 文件并将其编辑为

全部允许

.重新启动您的服务器。现在一切都应该正常了。

此外,您可以保留机器的 IP 地址,以便始终分配给您。在路由器界面的左侧面板中,找到 DHCP -> Address Reservation,单击它。输入您机器的 MAC 地址和您在代码中输入的 IP 地址。点击保存。这将为您的机器保留给定的 IP 地址。


S
Shuyaib Abdullah

为未来的开发人员添加解决方案。

复制您的IP地址的地址。右键单击您的网络->网络和共享->单击您当前拥有的连接->详细信息->然后ipv4地址旁边的地址是您的IP地址,请在某处记下

转到控制面板 -> 系统和安全 -> windows 防火墙 -> 高级设置 -> 入站规则 -> 新规则(按照步骤添加端口,例如 80,它真的很简单)

将您在手机浏览器上记下的 IP 地址和您为其创建规则的端口号放在旁边。例如 192.168.0.2:80 和 wala。

如果它没有连接可能的解决方案。右键单击网络->打开网络和共享->查看活动连接,在连接类型下的连接名称下,如果它是公共的,请单击它,并确保将其更改为家庭网络。


感谢最后一段,这对我来说是个问题:)
O
OneCricketeer

虽然一个答案已被接受,但这对我有用:

确保您的计算机和安卓设备都在同一个网络上。获取您计算机的 IP 地址。 (如果在终端内使用 mac 类型 ifconfig 并查找 en0/en1 -> inet 它应该类似于 19*.16*.1.4。)(在 Windows 上,使用 `ipconfig)打开您的移动设置并转到网络 ->长按您的wifi网络->修改网络->向下滚动到高级选项->选择代理手册并在代理主机名中输入您的地址,即19*.16*.1.4内部端口输入您的端口。并保存它。在谷歌浏览器中搜索我的 ip 并获取你的 ip,假设它是 1**.1**.15*.2** 尝试访问 1**.1**.15*.2**:端口/来自您的移动设备。

就这么简单。


您不需要通过 WiFi 的代理,也不需要本地网络中的外部 IP 地址
S
Stefan Michev

什么对我有用(目标:从运行在 android 手机上的客户端应用程序调试在 localhost:99999 上运行的 Windows 服务器应用程序)

手机和电脑连接在同一网络上,例如 192.168.1.xxx(在我的情况下通过 wifi 连接)在 Windows 防火墙中启用端口 99999,以管理员身份在 cmd 中运行:netsh http add urlacl url=http://*:99999/ user=每个人

然后可以从手机访问服务应用程序 url (my_dev_machine_ip:99999/path_to_service)。