ChatGPT解决这个技术问题 Extra ChatGPT

如何从 iPhone 浏览器访问在 localhost 上运行的网站

我正在开发一个移动网站,并想使用我的 iPhone 浏览器对其进行测试。我的 Windows 7 机器和 iPhone 在同一个无线网络上。如何从 iPhone 访问 localhost?现在我收到 404 错误。

确保您关闭了防火墙
在同一网络上的另一个/移动设备上,访问:“IP_Address:PORT”。详细信息在下面的答案中。

L
Leniel Maccaferri

从 iPhone 访问 localhost 将简单地进行环回/尝试连接到自身(如果它支持?)。

您需要做的是找到您的桌面计算机的 IP(例如,如果是 Windows,请转到 Command Prompt 并键入 ipconfig 或转到 Network and Sharing Centre 并查找 connection status

获得 IP 后,只需从浏览器访问该 IP,例如 http://192.168.0.102

如果您正在运行防火墙,您可能需要在防火墙的入站安全性中打开端口 80(或您的网站正在运行的任何端口)。

注意:如果您想要在 iPhone 的浏览器中调试应用程序,请不要忘记应用程序的端口,例如:http://192.168.0.102:3000。在这个例子中,3000 是 ReactJS 使用的默认端口。


“从 iPhone 访问 localhost 将简单地进行环回/尝试连接到自身(如果它支持?)” - 当然它支持。和我的答案几乎一样啊哈哈哈;)
与其他基于 unix、symbian 和 win 的设备一样,Iphone 需要环回,因为某些应用程序通过 TCP/IP 环回地址与其他应用程序连接。几乎所有有网络的设备都具有环回能力。
如果测试是针对 wordpress 的,那么我们必须在 wordpress Dashboard 中将网站 url 更改为 http://xxx.xxx.xxx.xxx/wordpress
实际上,尝试访问 localhost:port 到您机器上的开放端口。它适用于我的设置。
IINM,这不适用于调试通常具有服务工作人员的渐进式 Web 应用程序,因为服务工作人员需要 https,并且需要证书。使用 Android,它会转发端口,以便您仍然可以使用 localhost,因此不需要获取证书的麻烦。
F
Fatih Acet

如果您使用的是 Mac,请转到系统偏好设置 > 网络并使用您的 IP 地址而不是 localhost。您也可以使用端口号。就我而言,我有一个在端口 1448 上运行的服务器,我可以使用 iPhone 预览 192.168.1.241:1448。

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


这个答案是 comp sci 极客与视觉设计极客的完美平衡。做得好。
在单击 Wi-Fi 菜单栏项的同时按住 Alt/Option 键。这提供了一堆关于您的连接的额外信息,包括您的本地 IP 地址。
如果您的服务器使用虚拟主机(多个主机名),则无法正常工作
2018:网络实用程序 > 信息(第一个选项卡)> IP 地址(在接口信息下) - 有效! thnku
要访问开发沙箱,我必须将沙箱主机更改为 0.0.0.0 而不是 localhoststackoverflow.com/a/35419631/1054633
T
TheTiger

尝试这个:

按 Windows + R 打开 cmd 运行 ipconfig(旧) ifconfig(新) 检查您的无线网卡 IP 转到 iPhone 并通过浏览器导航到“http://xxx.xxx.xxx.xxx/”。 (xxx.xxx.xxx.xxx 是你的 IP)

注意:您必须在防火墙设置上设置权限(如果有)。


你救了我的一天!
M
Manish Gupta

你可以试试ngrok.io。工作原理与本地隧道相同。
为您的操作系统下载应用程序。并尝试像这样运行:

对于 Linux:

./ngrok http 8000

8000 是您的应用程序正在运行的端口号。

对于窗户:

 ngrok.exe http 8000

这在理论上可以回答这个问题,但最好将答案的基本部分包含在此处以供将来的用户使用,并提供链接以供参考。 Link-dominated answers 可以通过 link rot 变为无效。
谢谢,我编辑了答案。但它仍然是链接主导的。但是,万一链接断开,人们总是可以用谷歌搜索。
C
Community

如果您使用的是 Mac -

通过 USB 将 iPhone 连接到 Mac。转到网络实用程序(cmd+空格并键入“网络实用程序”)转到“信息”选项卡单击“Wi-Fi”下拉菜单,然后选择“iPhone USB”,如图所示。

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

您会找到类似“xxx.xxx.xx.xx”或类似的 IP 地址。在 iPhone 上打开 Safari 浏览器并输入 IP_address:port_number 示例:169.254.72.86:3000

[注意:如果 IP 地址字段为空白,请确保您的 iPhone 已通过 USB 连接,退出 Network Utility,再次打开并检查 IP 地址。]


奇迹般有效。另一个很酷的功能是 you are able use the inspector for development.
如果您看不到 IP 地址,请执行以下操作: 1. 打开 iPhone 上的个人热点(通过 USB 连接) 2. 关闭 Mac 上的 wifi。这样 iPhone 就会转向路由器,您将再次看到 IP 地址。
这可行,但似乎没有必要,因为使用 mac 的 IP 地址也同样有效(即:当你们都在同一个 WiFi 上并从上面的列表中选择 Wi-Fi (en0) 时获得的 IP 地址)。
当我打开网络实用程序时,它显示“不推荐使用网络实用程序”
是的,网络实用程序自 macOS Big Sur 以来已被弃用,现在需要使用终端
N
Nikos

如果您不在同一个网络上,则可以使用名为 localtunnel 的第三方工具

http://localtunnel.me/

它基本上通过另一台服务器路由您的内容,然后您可以访问它。


这已在 an existing answer 中介绍。
e
ecko

如果您使用 MAMP,请在您的 iPhone Safari 浏览器中输入您的 IP 地址(例如 192.0.0.63),然后输入端口号 8888(例如 192.0.0.63:8888),您将能够看到您的本地iPhone 中的网站。

如果您使用的是 WAMP 服务器,请再次在 iPhone Safari 浏览器中输入 IP 地址(例如 192.0.0.63),仅此而已。但不要忘记从您的 WAMP 服务器的 httpd.conf 文件中删除 deny from all。如果您查找第 allow from 127.0.0.1 行,在其上方或下方您将看到 deny from all;只需删除此行并重新启动您的 WAMP 服务器即可完成这项工作。


MAMP 的端口号取决于您在“服务器”选项卡中的设置。
我只想补充一点:如果您尝试过但没有用,请尝试将网络更改为其他不同的网络,在我的情况下,我切换到手机的 4G 热点,它可以正常工作
R
Ryan

如果您宁愿键入主机名而不是 IP 地址

第一个选项(快速方式):

您应该能够在 iPhone 上导航到 http://my-macbook-pro.local/mywebsite。请参阅https://stackoverflow.com/a/9304094/470749

这种方法往往会奏效,因为“.local”域是一个特殊的保留字。

第二种选择:

请参阅http://xip.io/,这是一项免费服务,非常方便。无需配置。

然后,当您浏览到 http://mysite.app.192.168.1.130.xip.io(使用您的服务器上的浏览器在您 LAN 上的任何设备上)时,它将显示托管在 192.168.1.130 的页面。

如果您在存在于该 IP 的机器上运行 Homestead,浏览到 http://mysite.app.192.168.1.130.xip.io:44300(使用 URL 中的端口)会以某种方式显示托管在 192.168.10.10 的 Homestead Vagrant 虚拟机上的页面。相当了不起。

第三个选项(它不依赖于服务并且灵活但更复杂,并且仅在您有一个带有 DD-WRT 的路由器时才有效):

如果您有一台本地服务器托管多个不同的站点,您希望通过不同的主机名(通过 iPhone)访问这些站点,您可以这样做。

在您的操作系统中,将您的计算机名称更改为简短、有意义且易于记忆的名称,例如“RYANDESK”。在您的 DD-WRT 路由器设置中:在 Services > Services > Static Leases 中,将服务器的 MAC 地址设置为指向特定的 IP 地址,例如 192.168.1.108。将其主机名设置为与您之前命名计算机的相同。 “客户租用时间”可以是 1440 分钟。请务必按保存并在每次更改时应用设置。 (“保存”似乎不会自动应用设置。)如果您收到错误,可能是因为 DD-WRT 的 GUI 设计具有误导性,并且您不必要地为静态租约按下了“添加”。在 DHCP 服务器 > 用户域中,选择“LAN & WAN”。对于“LAN 域”,将其设置为一些短字符串,例如不带任何标点符号的姓名首字母(例如“xyz”)。可能避免使用“本地”一词,因为可能存在冲突。不要使用真实世界的域,例如“com”、“org”、“net”等。在“服务”>“服务”>“DNSMasq”中,启用 DNSMasq 和“本地 DNS”,并将“附加 DNSMasq 选项”配置为: address=/project1.xyz/project2.xyz/192.168.1.108 (其中 xyz 是您在前面步骤中选择的任何内容,IP 指向特定机器,project1 和 project2 是您想要指向每个项目的任何主机名(例如不同的 Nginx 配置)。确保您的 HOSTS 文件没有任何与我们所做的冲突的条目。如果您不知道 HOSTS 文件是什么,您可能没问题。刷新您的 DNS 缓存并释放并更新您的本地IP。在iPhone上切换进入和退出飞行模式以刷新那里的DNS缓存。现在您可以在iPhone(或桌面浏览器)中浏览到http://ryandesk.xyz,它会解决到你的本地服务器。所以希望你已经设置了你的 Nginx 或 Apache 或任何正在监听该主机名的东西。https://wiseindy.com/it/how-to -access-your-pcs-using-dns-names-with-dd-wrt/ http://www.howtogeek.com/69696/how-to-access-your-machines-using-dns-names-with-dd -wrt/


K
Kenigbolo

对于 Mac 用户,打开 Network Utility(您可以通过键入 cmd + space 来找到它,这将打开 Spotlight,然后在 Spotlight 中开始键入 Network Utility)。选择网络实用程序,当它打开时,您的 IP 地址将在标签 IP 地址旁边找到。所以基本上使用IP,您可以进入本地mac上的任何开放端口,例如,如果您的网站在localhost:3000本地运行并且您的IP地址是154.31.92.0,那么您可以通过手机输入154.31来获取网站。 92.0:3000 进入浏览器。

PS-仅当手机和计算机在同一网络上时才有效


这很好用。在网络实用程序中,我选择了 Wi-Fi 而不是默认的以太网,然后我的地址是 10.0.1.3。在我的 Mac 上,我有一个在 localhost:3004 运行的程序,所以在 iPad 上,我输入了 10.0.1.3:3004,我能够查看在我的 Mac 上本地运行的站点。对于带有子域的更复杂的情况,例如 demo.mysite.local:3004,我使用 DNSMasq 取得了成功,但这是一个更复杂的过程。
当我打开网络实用程序时,它显示“不推荐使用网络实用程序”
转到系统偏好设置 > 网络 > Wifi,IP 地址将显示在右侧 Wifi 详细信息中。
C
Community

来自 iphone 的 WebpackDevServer 本地主机

如果您使用的是在节点上运行的应用程序。你可以使用 webpack 作为构建工具并使用他们内置的 devserver

您可以使用 webpackdevserver 从 localhost 服务器启动应用程序,然后传入您选择的 localhost 地址和端口。

webpack-dev-server --host 192.168.0.89 --port 3000

然后从你的 iPhone 你可以使用它访问它

http://192.168.2.89:3000

注意 :: 您的笔记本电脑和 iPhone 应该在同一个网络上,并且您应该使用您的本地主机 IP 地址。对于 Mac 如何查找 IP 地址,您可以参考 Get local IP address in node.js


e
edhnb

老问题。对我有用的新的简单答案。

通过 USB 将 iPhone 连接到计算机。

打开系统偏好设置 > 共享。

在左侧选项卡中选择 Internet 共享。这应该会在右侧显示您的 Internet 共享控件。

如果 Internet 共享旁边的复选框已启用,请取消选中它。

在 Internet 共享选项的右侧,选中 iPhone USB。

通过选中复选框启用 Internet 共享。可能会有一个弹出窗口要求您确认此操作。

找到顶部附近的消息,“本地网络上的计算机可以访问您的计算机:xxxx.local。记下 xxxx 所说的内容 - 这是您计算机的名称。您将在地址栏中输入它,所以我建议把它编辑成一个简短的词。

您现在应该能够从 xxxx.local:yyyy 访问您的 localhost 服务器,其中 xxxx 是您上一步的名称,yyyy 是您服务器的端口号。


J
Jibeee

如果您使用的是 mac (OSX):

在你的 Mac 上:

打开终端运行“ifconfig”找到ip地址为“192.xx.xx”的行

如果您使用以下地址测试您的网站:“localhost:8888/mywebsite”(这取决于您的 MAMP 配置)

在您的手机上:

打开浏览器(例如 Safari) 输入 URL 192.xxx.xx:8888/mywebsite

注意:您必须连接到同一网络(wifi)


b
bool.dev

您可以使用计算机的 ip 代替 http://localhost。

但它可能无法访问。您必须编辑服务器软件的 httpd.conf(或等效配置文件)。我现在没有安装 php,但您可以使用关键字搜索:“Allow from or /Directory”

注意:运行 XAMPP 的 PC 的 IP 应该是静态 IP(不是 DHCP 分配的),否则每次重启 PC 时都必须手动检查。


D
DrHooverCraft

我想完成与原始请求相同的事情,并在这里寻找答案,并关闭了所有防火墙和病毒防护均无济于事。

然后,我在 microsoft 文档中找到了以下关于 IIS express 的声明:“IIS express 不向另一台计算机上的浏览器提供请求,使其在企业环境中更容易获得批准”。

底线 - 您必须安装 IIS(而不是提供的 IIS express)才能让您的项目在您的计算机之外看到。

来源:http://msdn.microsoft.com/en-us/library/58wxa9w5.aspx

希望这对其他正在疯狂关闭计算机上所有安全功能的人有所帮助。


j
jsibs

本地服务器机器:Linux

接入机器:iPad 13.5.1

了解到本地服务器的主机IP需要设置为0.0.0.0,其他机器才能访问。要检查,请运行 sudo netstat -anp 并查找您的本地服务器端口。我发现它在 127.0.0.1 或 localhost 上运行,因此其他机器无法访问它。我将应用配置更改为在主机 IP 0.0.0.0 上运行。然后我使用 <internetIP>:<port> 访问本地服务器,它工作


Y
Yassin

如果您正在处理 php 项目,则可以更改基本 href:

<base href="<?php echo str_replace("localhost","192.x.x.x",HTTPS_SERVER);?>">

localhost 或 127.0.0.1:取决于您的设置

192.xxx : 你的本地 IP 地址

HTTPS_SERVER:以前的基本 href

这样做对于在手机上加载图像、css 和 js 文件至关重要。


T
T.Todua

使用 WAMP:

1)您应该点击 WAMP 图标>上线(等到重新启动)。

2)然后(如果您是同一网络上的Iphone上的WiFi),在iPhone浏览器中打开您的IP

http://192.168.1.22 http://164.92.124.42

要查找您的本地 IP:
a) 点击 Start>Run>cmd 并输入 ipconfig ,然后您会看到那里。

b) 点击蓝色的 arrow 和“租用新 ip”。

ps就是这样。现在您可以从 Android 或 iPhone 访问(打开)localhost


D
David

对于那些使用正确 IP 地址但仍无法连接到本地服务器的人,要检查的另一件事是您或您的同事没有将设备配置为使用代理服务器。

我有一台无法连接的设备,结果发现该设备被配置为使用 Charles Proxy,当然它没有运行。


E
Employee

找到您系统的 IP 地址以及您在哪个 port 上运行该网站。

假设您的 IP 地址是 121.300.00.250,端口是 8080

[端口号:在运行页面时查看您的 Web 浏览器,例如:localhost:8080/... 那么端口号是 8080]

现在在您的手机中转到 121.300.00.250:8080/..,您会找到您的网站。

重要提示:您必须确保您的服务器(例如 Apache Tomcat)处于启动状态


C
Community

看看这个 answer,它讨论了通过直接 Objective-C 调用到支持 HTTP 的层/嵌入式 Web 服务器的内部路由 HTTP(假设 HTTP 服务器代码位于希望在其中显示 HTML 的同一应用程序中)一个网络小部件)。

这具有稍微更安全(并且可能更快)的优点,因为不应暴露任何端口。


t
timepicker_question

如果您进入网络设置并获取 Wi-Fi IP 地址,例如 xxx.xxx.x.xxx:9000(:9000 或任何打开的端口),请确保您的移动设备也在同一个 Wi-Fi 上-Fi/信号 IP 地址。我花了一天时间试图让它工作,直到我将手机从蜂窝网络切换到相同的 Wi-Fi 连接/IP 地址,它才起作用。在我进行此更新后立即打开。


关闭移动数据对我来说完全不同。谢谢!
L
Lying_cat

有一种非常简单的方法可以实现这一点:

将手机和电脑连接到同一个局域网。 Window + R,然后输入 ipconfig,然后你会得到你电脑的当前 ip,它看起来像这样:192.168.XX.XX 在你的手机网络浏览器中用你的应用程序端口输入这个 ip,如下所示:http://192.168.XX .XX:8080,它有效

笔记:

如果那不起作用。关闭电脑中的杀毒软件,如果还是不行,请尝试关闭windows防火墙,因为问题与电脑防火墙有关。


h
help-info.de

脚步:

我假设您已经启动了 Web 服务器(默认端口:8080 上的 apache tomcat)。

在 Windows 10 上:

打开您的防病毒软件,转到防火墙部分,找到端口部分并添加一个本地 TCP/IP 端口:8080 以允许访问从命令提示符获取机器 IP 地址。 (IPv4 地址)从 iPhone 启动 chrome 并转到 ip 地址:8080 地址。

希望这可以帮助。


H
Hồng Phúc

首先,您必须确认您还通过 mac 浏览器上的 mac ip 访问服务器 api。如果没有,请确保您的服务器允许这样做,而不仅仅是 localhost (127.0.0.1),方法是在 0.0.0.0 上运行您的服务器转到 iphone 上的 safari 并通过您的服务器服务的 api 发出获取请求:例如 http://0.0。 0.0/st。如果您想在您的 iphone 应用程序上发出请求,Safari 会自动重定向到您的 mac 运行服务器(在您的 mac ip 上)。它应该由 [your mac/server ip] repalce requet 0.0.0.0


s
sumit

我想从我的 iphone 浏览我的 Windows 8 笔记本电脑上托管在 IIS 服务器上的网站。经过一番阅读,我打开了 Windows 防火墙,选择了“允许应用程序或功能通过 Windows 防火墙”。然后向下滚动并从列表中选中“万维网服务 (HTTP)”。就是这样,它奏效了。希望它也对其他人有所帮助。


t
tum

在我的情况下,首先我将我的电脑和手机连接到同一网络上,您可以从电脑 ping 手机以测试连接。

我在本地使用 GGTS(Groovy/Grails Tool Suite)运行我的项目,然后使用 PC IP 地址从移动设备访问网站,它运行良好。

PS。从本地运行它会给出类似 (http://localhost:8080/projectname) 的 url,如果您尝试从移动设备访问本地网站,您应该将 localhost 替换为 PC IP 地址


g
giraff

如果您使用的是 Mac,请确保编辑您的 /etc/hosts 文件。按照上述说明查找 IP 地址,并将以下行添加到该文件中

172.x.xx.x.x outer

之后,上述步骤奏效:在我的 iphone 浏览器中导航到右侧页面,访问 http://172.x.xx.x.x:port http://www.imore.com/how-edit-your-macs-hosts-file-and-why-you-would-want


J
Julian B.

在 Mac 上执行此操作的另一种快速而肮脏的方法是打开 xcode(如果您安装了它)并在您的模拟器上运行 safari。在此处键入 localhost 也可以。