我怀疑这在没有大量越狱的情况下是可能的,但是是否可以编辑 iPad(或任何 iOS 设备)的主机文件?
14 回答
前面的答案是正确的,但是如果您正在寻找的效果是将域的 HTTP 流量重定向到另一个 IP,那么有一种方法。
由于它在技术上没有回答您的问题,因此我在这里提出并回答了这个问题:
不,您不能更改 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 中的Squid或Varnish ,或 Wondows 中的fiddler。
不能。应用程序只能在自己的沙箱中修改文档目录中的文件。这是为了安全,便于安装/卸载。因此,您只能在越狱设备上执行此操作。
最简单的方法是使用 XCode 运行 iPad 模拟器,然后在主机系统上的主机文件 (/etc/hosts) 中添加一个条目以指向您的测试站点。
我需要相同的功能,越狱是不行的。一种解决方案是托管自己的 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)工作!
是的,您可以编辑 iPad 主机文件,但您需要越狱。完成后,下载 Cydia(应用市场)并获取 iFile。hosts 文件位于“/etc/hosts”中。
我想你可以通过设置一个透明代理来做到这一点,使用像查尔斯这样的东西并以这种方式重定向流量
我用于开发目的的 Workarond:
- 创建您自己的代理服务器(一种选择是:Linux 上的 Squid)。
- 使用您的域设置您的主机文件。
- 在 IPAD/IPHONE 上设置代理服务器,您可以与主机一起使用。
我知道这已经发布了一段时间,但是在 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) 的名称解析问题。
现在,我的咆哮:该死的苹果。确保设备安全不应包括阉割操作系统或开发人员。
如果您可以自由选择主机名,那么您只需将您的主机添加到动态 DNS 服务,例如 dyndns.org。然后就可以依靠 iPad 的正常解析机制来解析地址了。
您还可以使用 iPhone Mobile 代理生成器通过移动互联网 (3G) 在 iPhone 或 iPade 上使用代理服务器:
http://iphonesettings.net/mobileproxygenerator.php
只需输入您的运营商的 apn(如果需要,请使用 apn 用户名/密码)和您要通过的代理服务器,然后点击生成
问题重述:绕过 DNS 解析
OP 试图解决的问题不是破解hosts
iPad 本身上的文件,而是通过在其设备上创建静态的本地IP:名称映射来绕过特定已发布 DNS 记录的 DNS 解析。
解决方案:
一种更好且更具可扩展性的方法是创建静态IP:Name映射,您将在hosts
设备上的文件中创建它,而不是在路由器上创建它,然后将您的 DHCP 寻址客户端指向该路由器作为主要来源我在此处记录的 DNS 解析(带有带注释的屏幕截图)。
结论:
在测试一个新站点时,您需要检查它在多个设备上的显示,以确保没有时髦的显示或可用性问题。使用静态本地IP:Name映射绕过 DNS 检查将要求每个开发人员破解hosts
他们每个设备的文件,然后记住在测试后展开所有设备中的更改。
如果 OP 询问是否有可能破解 iPad 的主机文件,在许多组织中,开发人员的 IT 资产将被锁定,他们将没有管理权限来进行此类修补。
最好做静态映射绕过路由器中发布的DNS记录,测试完成后在一处删除即可。
你需要访问/private/etc/
所以,不。你不能。
最佳答案: 只需在浏览器中添加 http 或 https、IP 地址、冒号和端口号。示例:https ://123.23.145.67:80