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


87

我怀疑没有大范围越狱就可以做到这一点,但是是否可以编辑iPad(或任何iOS设备)的主机文件?


1
并非没有越狱。一旦越狱,它将与任何其他Unix / BSD系统相同。我想我以前没做过。
Jasarien 2011年

1
想象一下,是否有任何应用程序可以更改主机名与其​​合法IP之间的关联。
Jano

2
@jano Mac App Store上的应用现在可能存在此问题。在您可以编辑主机文件之前,OSX需要输入密码来处理此问题,并且可能是通过Apple的应用程序审查程序处理的。
Danyal Aytekin 2011年

3
@Jano:Microsoft Windows现在允许这样做,并且导致0问题。您只需要具有管理员权限。有正当理由要修改主机文件(所有这些都与在没有DNS服务器的情况下解决问题或处理VPN问题有关)。
Josh Mouch

Answers:


46

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


1
仅在沙箱中,而不仅在文档目录中(请参阅《 iOS应用程序编程指南》>“应用程序运行时”>“文件系统”)。
Jano

55

先前的答案是正确的,但是如果您要寻找的效果是将域的HTTP流量重定向到另一个IP,则可以使用一种方法。

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

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


47

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

这是我的情况:

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

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

该解决方案对我有用:

  • 首先,请确保您的服务器和iPad位于同一局域网中。
  • 然后,设置Charles代理,在菜单“代理>代理设置...”中,填写Port(主要是8888)并切换Enable transparent HTTP proxying

在此处输入图片说明


  • 在iPad中设置代理设置。

在此处输入图片说明

现在,您可以在iPad中访问您的Web应用程序。

当然你也可以使用其他的代理工具,如鱿鱼光油在Linux或小提琴手在WONDOWS。


1
它没有回答问题……但这是一个出色的,易于实现的,易于切换的解决方案,其目的是使大多数人都希望编辑主机文件。
马特·肯尼菲克

很棒的解决方案!清洁且易于实施。我使用linux作为工作站的操作系统,因此我使用了tinyproxy,并且该代理可以在iPhone上正常使用。谢啦!
Edenshaw

由于安全问题,它可能无法在更新版本的iOS上运行,而使用NodeJs模块filternet
vanduc1102'5

1
“现在您可以在iPad上访问您的Web应用程序”-但是如何?如果我的应用程序只能在“ myapp.dev.domain.com”上运行,则Ipad如何解析名称。这是主机文件的来源,我怀疑问题的关键所在
格雷格·伍兹

@GregWoods我有一个类似的配置,这通过访问“ myapp.env.domain.com”为我工作,但经过几次尝试后才生效
RenaissanceProgrammer

6

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


6
问题是关于设备而不是模拟器。
Janak Nirmal

5
@JanakNirmal仍然是一个有用的答案。
西蒙(Simon),

6

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


1
这里的每个答案都假设OP希望嗅探HTTP流量,而这是唯一专注于欺骗DNS解析(作为修改主机文件)的实际答案
Filipe Pina


4

我想您可以通过设置透明代理来实现,例如使用查尔斯(Charles)并以这种方式重定向流量


3

我用于开发目的的Workarond:

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

不错的简单解决方案!
亚当·弗里曼

3

我知道已经发布了一段时间,但是使用iOS 7.1时,发生了一些变化。

到目前为止,如果您正在开发应用程序,则必须拥有Apple认可的有效SSL证书,否则您的iDevice上将收到错误消息。没有更多的自签名证书。请参阅此处的列表:

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

此外,如果您在此处,则意味着您正在尝试使iDevice在测试或开发环境上解析名称(到https服务器)。

无需使用鱿鱼(这是一个很好的应用程序),您只需运行一个非常基本的DNS服务器(如dnsmasq)即可。它将使用您的主机文件作为名称解析的第一行,因此,您基本上可以在其中欺骗您的iDevice,说www.blah.com是192.168.10.10。

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

这是我的:

监听地址= 192.168.10.35

领域需要

伪造的

no-dhcp-interface = 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证书的位置);但要使用网址www.prod ...... com。到目前为止,尚未找到解决方案。:0(
codeslapper

2

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


2

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

http://iphonesettings.net/mobileproxygenerator.php

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


2
读者注意:许多企业Internet防火墙解决方案将此答案中的网站列为恶意软件。通过不信任的代理服务器发送所有流量,即可暴露所有传输的信息。你真的相信iphonesettings.net吗?
ErikE

-2

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


@OmG,问题是“是否有可能”,他/她的评论实际上确实回答了这个问题。停止复制/粘贴评论以提高自己的声誉。
丹尼尔·史密斯

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.