iPhone:向/etc/hosts添加条目而不越狱
在我的开发过程中,我需要访问一个位于VPN后面且没有DNS条目的Web服务器。 我在4.x上所做的是在iPhone上编辑/etc/hosts,并将其添加到hosts文件中 现在我在5.0测试版上,不想为了这个目的而越狱iPhone:向/etc/hosts添加条目而不越狱,iphone,ios,hosts-file,Iphone,Ios,Hosts File,在我的开发过程中,我需要访问一个位于VPN后面且没有DNS条目的Web服务器。 我在4.x上所做的是在iPhone上编辑/etc/hosts,并将其添加到hosts文件中 现在我在5.0测试版上,不想为了这个目的而越狱 有没有一种方法可以在不越狱的情况下向/etc/hosts添加一行代码,仅用于开发目的(最终的分发应用程序不需要这种破解)?我是否可以使用其他方式(例如,在应用程序启动时以未知方式声明假DNS条目)?通过在无线网络上设置本地DNS服务器,或使用动态DNS服务,或通过向您控制DNS的
有没有一种方法可以在不越狱的情况下向/etc/hosts添加一行代码,仅用于开发目的(最终的分发应用程序不需要这种破解)?我是否可以使用其他方式(例如,在应用程序启动时以未知方式声明假DNS条目)?通过在无线网络上设置本地DNS服务器,或使用动态DNS服务,或通过向您控制DNS的域添加a记录来设置真实的DNS条目。您也可以设置dnsmasq(可从macports/brew获得),它充当DNS转发器,允许您设置各种替代记录 然后,您可以在iphone/ipad上设置DNS以指向运行DNSmasq的框,然后将首先返回DNSmasq框上/etc/hosts上的任何主机。如果未找到,DNSmasq将向上游DNS发送查询 您还可以将SRV记录添加到dnsmasq.conf:
srv-host=_sip._udp.devel.foo.com,devel.foo.com,5070
和许多其他细节。编辑:如果您愿意购买小型许可证,我建议使用web调试代理工具。它还将解析本地/etc/hosts的域,并提供许多额外功能(即检查请求/响应和限制网络速度).我只是在WWDC视频中偶然发现了这个工具,我与该产品没有任何关联。我建议您先阅读
另外,一种解决方法是将本地计算机设置为DNS服务器,并将iPhone指向计算机作为DNS服务器。这也适用于Android设备 这些说明适用于通过自制的Mac OSX:
brew安装dnsmasq
是一个轻量级dns服务器,当遇到未知域时,它将回退到原始dns服务器dnsmasq
address=/.your.domain.com/10.0.0.5
添加到文件/usr/local/etc/dnsmasq.conf中
- IP地址
是路由器分配给本地计算机的任何IP地址。您可以通过10.0.0.5
找到此地址(如果您想更有趣,可以在路由器中为本地计算机分配静态IP)网络实用工具
sudo dnsmasq
- 这将启动dnsmasq进程,它将侦听DNS端口
- 您将有两个条目,一个用于本地计算机(127.0.0.1)一个用于您的路由器。包含路由器IP的原因是
将通过其他已知DNS服务器完成未知条目。如果没有路由器条目,您将无法连接到internetdnsmasq
dnsmasq
- 如果关闭计算机,您的iPhone将无法再连接到internet。请确保将iPhone的DNS服务器重置为路由器的IP
- 默认情况下,
会查看你的/etc/hosts,因此如果你将dnsmasq
指向your.domain.com
,你的iPhone会将127.0.0.1
解析为your.domain.com
,这意味着你不会连接到任何东西。要更改此行为,请编辑取消注释dn中的127.0.0.1
行smasq配置\no hosts