iPhone 上是不是存在 hosts 文件?如何改变它? [关闭]
Posted
技术标签:
【中文标题】iPhone 上是不是存在 hosts 文件?如何改变它? [关闭]【英文标题】:Does hosts file exist on the iPhone? How to change it? [closed]iPhone 上是否存在 hosts 文件?如何改变它? [关闭] 【发布时间】:2011-01-02 23:13:02 【问题描述】:我正在开发一个查询服务器的应用程序。在我的 Mac 中,我使用 hosts 文件将 dns 更改为指向局域网中的本地服务器。
现在我需要用我的 iPhone 测试它,问题是我的 iPhone 无法识别该服务器,因为缺少 dns 配置。
在我的 Mac 或 Windows 上,我只需在 hosts 文件中添加:192.168.0.20 http://www.google.com
。
现在如何让我的 iPhone 知道 URL:http://www.google.com
?
【问题讨论】:
越狱您的 iPhone,下载 iFile,导航到/etc/
并在文本查看器中打开名为 hosts
的文件。现在你可以编辑它了。
使用 OSX 和 Charles Web Proxy 在 iPhone 上进行本地开发 deployfx.com/2011/08/…
OSX ios 模拟器并更新您的 /etc/hosts 文件。
或者:安装 Bonjour (sudo apt-get install avahi-daemon avahi-utils) 并在 iphone/ipad 上通过hostname.local 访问
我很惊讶没有看到这样一个对我有用的答案:***.com/a/41857012/470749
【参考方案1】:
这里的另一个选择是让您的 iPhone 通过代理连接。下面是一个如何使用 Fiddler 的示例(非常简单):
http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html
在这种情况下,您的 iPhone 执行的任何 dns 查找都将使用 Fiddler 正在运行的机器的主机文件。 注意,但是,您必须使用将通过 DNS 解析的名称。例如,example.local
将不起作用。 example.xyz
或 example.dev
将。
【讨论】:
这是最简单的解决方案。我早该想到的!! 太棒了。这对我来说是一种享受! 同样的东西在 osx 中效果很好,在网络设置中设置一个 HTTP 代理 i.imgur.com/h5zEm.png 使用 OSX 和 Charles Web Proxy 在 iPhone 上进行本地开发 deployfx.com/2011/08/… 这是一个很好的工具,可以用于任何移动应用程序开发 - 不仅仅是用于 DNS 查找【参考方案2】:这并不能直接回答你的问题,但它确实解决了你的问题......
你的路由器是什么牌子的?您的路由器固件可能允许您为本地网络设置 DNS 记录。这就是我对Tomato firmware 所做的事情
【讨论】:
谢谢,这是我为解决问题所做的;) 我也用过这种方法,只不过我用的是pfsense。 它将如何工作,我也有同样的问题,我在 cisco wrt 路由器上【参考方案3】:与编程无关,但无论如何我都会回答。它在/etc/hosts
。
您可以使用简单的文本编辑器进行更改,例如 nano
。
(显然你需要一部越狱的 iPhone)
【讨论】:
您不能在原版 iphone 上使用 nano 直接访问 /etc/hosts。我会假设是关于将要分发的应用程序,在这种情况下,您不能弄乱沙箱之外的文件。 @Jaanus:当然我是指越狱的 iPhone。而且他从未说过要重新分发应用程序。他只是提到他需要在有 dns 问题的 iphone 上对其进行测试。 我不明白反对意见。答案在技术上是正确的并且写得很好。 我会为编辑恢复一些业力;如果因为 implicit '用于分布式应用程序'而使用了反对票,那么虽然我可以理解它们,但我认为反对票的人应该留下评论来解释这一点。 我认为他只需要更改主机文件就可以测试他的应用程序。一旦测试,它不应该需要更改主机文件。在这里推荐越狱完全可以接受!【参考方案4】:我刚刚成功编辑了我的 iPhone 的“主机”文件(在越狱 iOS 4.0 上)。
通过 Cydia 将 OpenSSH 安装到 iPhone 上 在我的计算机上使用 SFTP 客户端(如 FileZilla),我连接到我的 iPhone 地址:[使用您手机的 IP 地址或主机名,例如。simophone.local
]
用户名:root
密码:alpine
找到/etc/hosts
文件
在我的电脑上做了一个备份(以防我以后想恢复我的更改)
在体面的文本编辑器中编辑了 hosts 文件(例如 Notepad++)。有关 hosts 文件的说明,请参阅 here。
已上传更改,覆盖 iPhone 上的 hosts 文件
手机会缓存一些网页和 DNS 查询,因此重启或清除缓存可能会有所帮助。希望对某人有所帮助。
西蒙。
【讨论】:
@Simon 我遵循了相同的步骤,但没有奏效。然后我尝试更改编码设置,并得到它!在保存之前,您必须在 Notepad++ 中将主机文件转换为 ANSI。未能使主机文件正常工作的人;点击“编码”菜单下的“转换为ANSI”。 您也可以使用 Cydia 的 iFile 应用程序来编辑您设备上的主机文件,而无需使用计算机。广告@m .. 并将默认密码从 alpine 更改为其他密码!【参考方案5】:它可能存在,但您无法在未越狱的 iPhone 上更改它。
假设您的开发网络服务器在 Mac 上,为什么不简单地使用它的 Bonjour 名称(例如 MyMac.local.
)而不是 myrealwebserverontheinternet.com
?
【讨论】:
所有 Web 服务都存在于我的 LAN 网络中的服务器中。我有一个域名,我也想将我的域名映射到这个服务器。并想象有人给了你一个他所有网络服务的地址,他要求你使用这个地址查询这些服务,他可以告诉你如何将主机文件添加到 mac、windows,而不是 iphone:-s【参考方案6】:不要更改手机上的 DNS。相反,通过 wifi 连接到本地网络,一切就绪。
在我的办公室,我们的内部服务器具有内部 DNS,不会暴露在 Internet 上。我只是用 iPhone 连接到办公室的 wifi,然后就可以正常访问了。
YMMV,但不是配置手机 DNS,我觉得只设置本地内部 DNS 和 wifi 是一种更清洁、更简单的解决方案。
【讨论】:
【参考方案7】:如果有其他人进入此页面,您也可以通过在 URL 请求中使用 IP 地址而不是域来解决此问题:
NSURL *myURL = [NSURL URLWithString:@"http://10.0.0.2/mypage.php"];
然后你手动指定主机:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:myURL];
[request setAllHTTPHeaderFields:[NSDictionary dictionaryWithObjectAndKeys:@"myserver",@"Host"]];
就服务器而言,它的行为方式与您使用http://myserver/mypage.php
完全相同,只是 iPhone 不必进行 DNS 查找。
100% 公共 API。
【讨论】:
但是这仅适用于第一个请求,如果 mypage.php 向 myserver 发出任何其他请求,则应用程序将不会进行转换。 如果您不打算使用cookie,这种方法很好。 不。这也不起作用。我们正在使用 SSL Pinning,因此域不匹配搞砸了:'017-07-13 10:21:42.244723-0400 ApperName[1015:449748] libMobileGestalt MobileGestaltSupport.m:153: pid 1015 (ApperName) 没有沙箱访问权限frZQaeyWLUvLjeuEK43hmg 和 IS NOT 适当地授权 2017-07-13 10:21:42.244886-0400 UnionBank[1015:449748] libMobileGestalt MobileGestalt.c:550: 无法访问 InverseDeviceID(参见不,iPhone 应用程序只能在其自己的小沙箱中更改内容。 (即使有些事情你也无法即时更改。)
您最好的选择可能是使用服务器 IP 地址而不是主机名。如果您只需要解析单个地址,则稍微困难一点,但不是那么困难,那就是在您的 Mac 上放置一个 DNS 服务器并配置您的 iPhone 以使用它。
【讨论】:
以上是关于iPhone 上是不是存在 hosts 文件?如何改变它? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
iPhone 上是不是存在 Core Data?或者您将如何在 iPhone 上保存数据?