ChatGPT解决这个技术问题 Extra ChatGPT

我可以编辑 iPad 的主机文件吗?

我怀疑这在没有大量越狱的情况下是可能的,但是是否可以编辑 iPad(或任何 iOS 设备)的主机文件?

不是没有越狱。一旦越狱,它将与任何其他 Unix/BSD 系统相同。我想,我以前没做过。
想象一下,如果任何应用程序都可以更改主机名与其合法 IP 之间的关联。
@jano 据推测,Mac App Store 上的应用程序现在存在这个问题。它由 OSX 处理,需要密码才能编辑主机文件,并且可能由 Apple 的应用程序审查程序处理。
@Jano:Microsoft Windows 现在允许这样做,它会导致 0 个问题。您只需要拥有管理员权限。并且有正当理由想要修改主机文件(所有这些都与在没有 DNS 服务器的情况下获取内容或处理 VPN 问题有关)。

C
Community

前面的答案是正确的,但是如果您正在寻找的效果是将域的 HTTP 流量重定向到另一个 IP,那么有一种方法。

由于它在技术上没有回答您的问题,因此我在这里提出并回答了这个问题:

How can I redirect HTTP requests made from an iPad?


h
holys

不,您不能更改 iPad 的主机文件(没有越狱),但可以解决。

这是我的场景:

Mac OS X,IP 192.168.2.1,运行网络应用

iPad,您想测试网络应用程序的设备

Charles(适用于 Mac),为您的 iPad 启用 HTTP 代理

我将通过 iPad 测试在我的 Mac 上运行的网络应用程序,但我无法直接访问它。

该解决方案对我有用:

首先,确保您的服务器和 iPad 在同一个本地网络中。

然后,设置 Charles 代理,在菜单“代理 > 代理设置...”中,填写端口(主要是 8888)并切换启用透明 HTTP 代理。

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

在 iPad 中设置代理设置。

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

现在您可以在 iPad 中访问您的网络应用程序。

当然,您可以使用其他代理工具,例如 Linux 中的 SquidVarnish,或 Wondows 中的 fiddler


它没有回答问题……但这是一个出色的、易于实施、易于切换的解决方案,大多数人都希望编辑 hosts 文件。
很棒的解决方案!干净且易于实施。我使用 linux 作为我的工作站的操作系统,所以我使用了 tinyproxy,并且代理在我的 iPhone 上运行良好。谢啦!
由于安全问题,它可能不适用于较新版本的 iOS,使用 NodeJs 模块 filternet 可以更轻松
“现在你可以在 iPad 上访问你的网络应用了”——但是怎么做呢?如果我的应用程序仅适用于“myapp.dev.domain.com”,Ipad 如何解析名称。这是主机文件的来源,我怀疑问题的重点
@GregWoods 我有一个类似的配置,这对我来说是通过访问“myapp.env.domain.com”来工作的,但只有在尝试了几次之后
J
Jonathan.

不能。应用程序只能在自己的沙箱中修改文档目录中的文件。这是为了安全,便于安装/卸载。因此,您只能在越狱设备上执行此操作。


仅在沙箱中,但不仅在文档目录中(请参阅 iOS 应用程序编程指南 > 应用程序运行时 > 文件系统)。
P
Payson Welch

最简单的方法是使用 XCode 运行 iPad 模拟器,然后在主机系统上的主机文件 (/etc/hosts) 中添加一个条目以指向您的测试站点。


问题是关于设备而不是模拟器。
@JanakNirmal 不过仍然是一个有用的答案。
E
Erti-Chris Eelmaa

我需要相同的功能,越狱是不行的。一种解决方案是自己托管 DNS 服务器 (MaraDNS),在 ipad/phone 中转到您的 wifi 设置,然后在其中添加您的自定义 DNS 服务器。

整个过程只花了我 10 分钟,而且成功了!

1) 下载 MaraDNS

2) 以管理员身份运行 mkSecretTxt.exe

3)修改mararc文件,我的是:

ipv4_bind_addresses = "put your public IP Here"
timestamp_type = 2
random_seed_file = "secret.txt"

csv2 = {}
csv2["Simple.Example.com."] = "example.configuration"

将名为“example.configuration”的文件添加到 run_maradns.bat 所在的同一文件夹中。

4)编辑你的example.configuration文件:

Simple.Example.com. 10.10.13.13 ~

5)禁用所有防火墙(方便)

6) 运行文件“run_maradns.bat

7) 应该没有错误。

8) 将您的 DNS 服务器添加到列表中,如下所示:http://www.iphonehacks.com/2014/08/change-dns-iphone-ipad.html

9)工作!


这里的每个答案都假设 OP 想要嗅探 HTTP 流量,而这是唯一专注于欺骗 DNS 解析的实际答案(如修改主机文件)
A
Apollo Clark

是的,您可以编辑 iPad 主机文件,但您需要越狱。完成后,下载 Cydia(应用市场)并获取 iFile。 hosts 文件位于“/etc/hosts”中。


C
CosmicChild

我想你可以通过设置一个透明代理来做到这一点,使用像查尔斯这样的东西并以这种方式重定向流量


t
tauanz

我用于开发目的的 Workarond:

创建您自己的代理服务器(一种选择是:Linux 上的 Squid)。使用您的域设置您的主机文件。在 IPAD/IPHONE 上设置代理服务器,您可以与主机一起使用。


好简单的解决方案!
C
Carlos Cap

我知道这已经发布了一段时间,但是在 iOS 7.1 中,一些事情发生了变化。

到目前为止,如果您正在开发一个 App,您必须拥有 Apple 认可的有效 SSL 证书,否则您将在您的 iDevice 上收到错误消息。不再有自签名证书。请参阅此处的列表:

http://support.apple.com/kb/ht5012

此外,如果您在这里,则意味着您正试图让您的 iDevice 在测试或开发环境中解析名称(到您的 https 服务器)。

您可以简单地运行一个非常基本的 DNS 服务器,例如 dnsmasq,而不是使用 squid,这是一个很棒的应用程序。它将使用您的主机文件作为名称解析的第一行,因此,您基本上可以在那里欺骗您的 iDevice,说 www.blah.com 是 192.168.10.10。

配置文件很简单,只有 3 到 4 行,您甚至可以根据需要配置其内部 DHCP 服务器。

这是我的:

监听地址=192.168.10.35

领域需要

虚假隐私

无 dhcp 接口=eth0

本地=/localnet/

当然,您必须在 iDevice 上配置网络以使用该 DNS(在我的情况下为 192.168.10.35),或者在正确配置后开始使用该服务器上的 DHCP。

此外,如果 dnsmasq 无法在内部解析名称,它会使用您的常规 DNS 服务器(如 8.8.8.8)为您解析它。非常简单、优雅,解决了我在内部安装 iDevice App 的问题。

顺便说一句,它也解决了许多常规 Mac (OS X) 的名称解析问题。

现在,我的咆哮:该死的苹果。确保设备安全不应包括阉割操作系统或开发人员。


谢谢卡洛斯。困难在于我们使用 Pulse Secure 的移动 vpn 产品来测试服务器。这些在外面是不可用的。所以,如果我们想测试一个新的 PROD 证书,那么我们需要 iPad 去测试服务器(安装 PROD 证书的地方);但要使用 URL www.prod......com。所以,到目前为止,还没有找到解决这种情况的方法。 :0(
j
jonseymour

如果您可以自由选择主机名,那么您只需将您的主机添加到动态 DNS 服务,例如 dyndns.org。然后就可以依靠 iPad 的正常解析机制来解析地址了。


S
Savas

您还可以使用 iPhone Mobile 代理生成器通过移动互联网 (3G) 在 iPhone 或 iPade 上使用代理服务器:

http://iphonesettings.net/mobileproxygenerator.php

只需输入您的运营商的 apn(如果需要,请使用 apn 用户名/密码)和您要通过的代理服务器,然后点击生成


请注意:此答案中的网站被许多公司互联网防火墙解决方案列为恶意软件。通过不受信任的代理服务器发送所有流量,您会暴露所有传输的信息。您真的信任iphonesettings.net吗?
F
F1Linux

问题重述:绕过 DNS 解析

OP 试图解决的问题是破解 iPad 本身上的 hosts 文件,而是通过创建静态的本地 绕过特定已发布 DNS 记录的 DNS 解析IP:name 在他们的设备上映射。

解决方案:

一种更好的可扩展性方法是创建静态 IP:Name 映射,您将在 hosts 文件中创建设备,而是在路由器上创建它,然后将您的 DHCP 寻址客户端指向该路由器,作为我记录的 DNS 解析的主要来源(带有注释的屏幕截图)HERE

结论:

在测试一个新站点时,您需要检查它在多个设备上的显示,以确保没有时髦的显示或可用性问题。使用静态本地 IP:Name 映射绕过 DNS 检查将要求每个开发人员破解他们每台设备的 hosts 文件,然后记住解除他们所有设备中的更改测试后的设备。

如果 OP 询问是否有可能破解 iPad 的主机文件,在许多组织中,开发人员的 IT 资产将被锁定,他们将没有管理权限来进行此类修补。

最好做静态映射绕过路由器中发布的DNS记录,测试完成后在一处删除即可。


u
user8853097

您需要访问 /private/etc/ 所以,不。你不能。


@OmG,问题是“有可能吗”,他/她的评论实际上确实准确地回答了这个问题。停止复制/粘贴评论以提高您自己的声誉。
C
Charlie

最佳答案: 只需在浏览器中添加 http 或 https、IP 地址、冒号和端口号。示例:https://123.23.145.67:80