94

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

4

14 回答 14

55

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

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

如何重定向从 iPad 发出的 HTTP 请求?

于 2011-08-02T19:09:43.793 回答
50

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

这是我的场景:

  • Mac OS X,带 IP 192.168.2.1,运行网络应用程序
  • iPad,您想测试网络应用程序的设备
  • Charles(适用于 Mac),为您的 iPad 启用 HTTP 代理

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

该解决方案对我有用:

  • 首先,确保您的服务器和 iPad 在同一个本地网络中。
  • 然后,设置 Charles 代理,在菜单“Proxy > Proxy Settings...”中,填写Port(大部分8888)并切换Enable transparent HTTP proxying

在此处输入图像描述


  • 在 iPad 中设置代理设置。

在此处输入图像描述

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

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

于 2014-04-08T11:15:28.297 回答
49

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

于 2011-02-03T17:32:45.453 回答
7

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

于 2012-03-05T21:38:16.260 回答
7

我需要相同的功能,越狱是不行的。一种解决方案是托管自己的 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)工作!

于 2015-05-27T13:13:56.927 回答
6

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

于 2012-08-03T12:37:51.747 回答
4

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

于 2012-03-11T20:45:48.987 回答
4

我用于开发目的的 Workarond:

  1. 创建您自己的代理服务器(一种选择是:Linux 上的 Squid)。
  2. 使用您的域设置您的主机文件。
  3. 在 IPAD/IPHONE 上设置代理服务器,您可以与主机一起使用。
于 2013-10-18T13:45:44.930 回答
4

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

到目前为止,如果您正在开发一个应用程序,您必须拥有 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) 的名称解析问题。

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

于 2014-07-16T00:00:51.717 回答
3

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

于 2013-06-18T00:53:51.813 回答
1

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

http://iphonesettings.net/mobileproxygenerator.php

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

于 2014-02-07T02:37:15.070 回答
0

问题重述:绕过 DNS 解析

OP 试图解决的问题不是破解hostsiPad 本身上的文件,而是通过在其设备上创建静态的本地IP:名称映射来绕过特定已发布 DNS 记录的 DNS 解析。

解决方案:

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

结论:

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

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

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

于 2022-01-04T09:20:21.120 回答
-2

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

于 2017-10-29T19:59:42.770 回答
-7

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

于 2018-01-23T20:53:46.747 回答