

如果你需要修改 /etc/hosts 来切换开发环境,甚至已经在用脚本、工具来编辑 Hosts ,你真的需要试试 iHosts.
一般的 Hosts 编辑工具,都是将 Hosts 文件进行整体替换。而iHosts 管理的粒度更小,可以仅仅更新其中的一部分。
比如,如果你需要在开发环境(如 192.168.1.80 )、测试环境(如 192.168.1.88 )之间切换,你可以:
在 iHosts 中新建一个分组。
创建“开发”节点,指定 192.168.1.80 对应的域名为 mydomain.com. 
创建“测试”节点,指定 192.168.1.88 对应的域名为 mydomain.com. 
然后,在开发时可以保持使用 mydomain.com 不变,直接在 iHosts 中一键切换开发、测试环境。 
当然,实时查看 /etc/hosts 这样的功能也不能少:

由于 iHosts 即将上架 Mac App Store ,所以 iHosts 采用沙盒模式。进而,你需要在首次运行时,允许 iHosts 访问 /etc/hosts 文件,并且在 Terminal 中通过命令允许当前用户修改 /etc/hosts 文件。
虽然稍微有些麻烦,但是更安全。如果是直接弹一个让我输入管理员密码的框,我还是有些慌的,尤其是前不久的 Transmission 事件...
废话不说,直接 >>> 点我免费下载 <<<
不过,计划上架 Mac App Store 后会有收费版本,免费版本会有一些功能限制。不过没关系,可以先试试,如果你都碰不到受限的地方,说明免费版对你绝对够用啦。
欢迎体验,围观改变世界。
1 Strikeactor 2016-04-18 09:35:47 +08:00 挺好玩儿,不过“你需要在首次运行时,允许 iHosts 访问 /etc/hosts 文件,并且在 Terminal 中通过命令允许当前用户修改 /etc/hosts 文件”这个感觉更麻烦啊。。 一定要设置成当前用户改 hosts 不用输密码的话, Alfred 里一个 sed 就可以切了,这玩意安全性有点问题 |
2 wangcheng 2016-04-18 09:41:39 +08:00 建议编辑器使用等宽字体。 |
3 quietjosen OP @Strikeactor 恩, hosts 有很多修改方式,直接使用 sed 操作 /etc/hosts 文件是需要点技术了,如果用别人封装好的插件会好些。但如果每次修改都需要输入密码就不太方便,如果将密码保存到钥匙串里会好些。但总感觉保存密码这事有点不放心... 安全和便利确实是矛盾的,是保存 Root 密码安全,还是允许当前用户修改 Hosts 更好,往深了想可能不一定呢。 |
4 quietjosen OP @wangcheng 恩,收到,感谢。 |
5 quietjosen OP @Strikeactor 还是要感谢回复;我也是自己需要、周围的开发朋友也有类似的需求,才想到干脆折腾个工具出来方便大伙,这才有了 iHosts ; 另外,只是有首次运行时才有设置的必要,之后都不再需要。而且,是因为有沙盒的限制,才需要让用户拖动选择 /etc/hosts 文件。又是安全与便利的矛盾啊... |
6 newbieo0O 2016-04-18 09:51:30 +08:00 |
7 shmilyin 2016-04-18 09:51:53 +08:00 建议加个更新 dns 缓存的功能 |
8 quietjosen OP @newbieo0O 恩,这个之前也用过,但有个严重的问题:需要我在它的 App 里输入当前账户的密码,一般这种情况我是拒绝的。 还有个使用上的便利问题:不支持分组功能。也就是说,我在激活一个选项时,很可能想禁用另一个选项。这样的需求在这个 App 里要点 2 次。 |
9 quietjosen OP @shmilyin 看来是资深啊;这个已经在计划中的,近期就会搞。 |
10 indexof 2016-04-18 10:03:42 +08:00 赞啊, 编辑框增加配色就好了, |
11 quietjosen OP @indexof 恩恩,已经在计划中了... |
12 xwartz 2016-04-18 10:25:49 +08:00 支持 |
13 quietjosen OP @xwartz 感谢 ^_^ |
14 v1024 2016-04-18 11:15:21 +08:00 颜值不错,马克。 |
15 quietjosen OP @v1024 被赞颜值,诚惶诚恐... |
16 Strikeactor 2016-04-18 11:34:41 +08:00 @quietjosen 保存 root 密码这事是肯定不能干的,不过如果是自己的脚本的话可以用 SUID 来让普通用户运行时临时拥有 root 的权限。让当前用户可以修改 hosts 的主要问题在他运行的恶意程序也可以在完全没有提示的情况下修改 hosts 进行中间人,这个问题还是比较严重的。 GoAgentX 和 CleanMyMac 3 为了解决安全与便利的矛盾安装了 Helper ,在首次运行输入密码后程序以后的操作都可以拥有较高权限。可以参考一下 http://www.bornsleepy.com/bornsleepy/os-x-helper-applications 。不过你是要上架的,就不知道这个属不属于商店的条约禁止的了。 |
17 mopvhs 2016-04-18 11:35:31 +08:00 |
18 v1024 2016-04-18 11:56:32 +08:00 @quietjosen 因为基本都是原生 UI 和布局逻辑, 习惯了 osx 的会很舒服,比有些人自己“设计”的强多了。 |
19 quietjosen OP @Strikeactor 恩,你说的有道理,我会再认真考虑。 Helper 的方式有这样的问题: 1 ,应该是不能上架的;一些上架的 App ,都是让用户到其官网手动下载 Helper (不受沙盒、 Mac App Store 约束),可想有些麻烦。 2 ,其实还是相当于让一个 App 拥有超级权限。可我怎么保证这个 App 不作恶呢?即使现在不作恶,以后呢?即使自己不作恶、会不会像 Transmission 一样被利用?这也是有安全风险的。 风险更低的做法是:手动使用 sudo 改 hosts ;但明显不便利,矛盾啊。。。 |
| /td> | 20 quietjosen OP @mopvhs 恩好啊,哪里不圆就来踩哦~ |
21 quietjosen OP @v1024 哈哈,我也是这样想的,这样缺乏 UI 设计功底的缺点反而变成优势啦 ^_^ |
22 Suclogger 2016-04-18 12:12:11 +08:00 我觉得 switchhosts 已经很完美了 https://github.com/oldj/SwitchHosts |
23 quietjosen OP @Suclogger 上面也有朋友提了,我觉得主要是有 2 个问题: 1 ,需要在 App 里输入 root 密码; 2 ,不能在一个分组内仅激活一项,需要拖动把另一项关闭。 |
24 ewBuyVmLZMZE 2016-04-18 13:06:07 +08:00 一直在用 Gas Mask |
25 quietjosen OP @syhily Gas Mask 是老牌了;主要它的切换单位是整个文件,觉着有些情况下不方便。 |
26 iMouseWu 2016-04-18 14:09:05 +08:00 我一直在用的是 switchHosts.主要是它的 UI 其实看上去还是比较舒服的 但是像 @shmilyin,DNS 缓存真的是硬伤,MAC 下每次切一个 hosts 要等一段时间才能完全切过去 |
27 vela 2016-04-18 14:16:41 +08:00 一直用 GasMask 的 Local/Combine 方式组合,也很方便。可以控制小粒度的切换。你说整个文件切换大概是以前旧版本不支持 Combine 方式的时候吧? 不管怎样,期待轮子更圆更棒,我们就切过去! |
28 weihongchang 2016-04-18 14:18:59 +08:00 很方便, 可以不干扰系统文件,那么麻烦 |
29 kikyous 2016-04-18 14:34:00 +08:00 需要 switchHosts 一样的方案多选的功能 |
30 kikyous 2016-04-18 14:34:26 +08:00 还有远程载入 hosts 功能 |
31 quietjosen OP @iMouseWu 颜既正义。不过,不同人的偏好的颜色还是有些不一样,比如上面的 v1024 同学就比较喜欢和系统 UI 风格一致的方式。 |
32 weihongchang 2016-04-18 14:46:53 +08:00 好像不支持 粘贴功能? 我都是敲进去的! http://7xsthm.com2.z0.glb.clouddn.com/ihosts.png |
33 quietjosen OP @boywang004 Gas 是有组合的方式,有一点点味道不一样,它是先组合、再使用;并且,当节点多时,组合方式就会很多,反而不麻烦。 iHosts 支持“实时组合”,也就是说,你在菜单中通过选中实现组合的时候,就已经自己激活了。也可以随意的组合。 |
34 quietjosen OP weihongchang 这个,有点没太理解,到底是方便还是麻烦呢? |
35 quietjosen OP @kikyous iHosts 的灵活就在于方案组合哦;既可以把相关节点放在同一分组中,也可以只允许一个分组中只激活一个选项。当然,也是可以创建多个分组的。 |
36 quietjosen OP @weihongchang 真是不好意思,还让你一个个打字,惭愧。。。 因为是托盘程序,没有系统菜单,也就没有菜单中的“粘贴”快捷键;目前,可以先使用鼠标右击、然后粘贴。下个版本会增加编辑 Hosts 时的菜单支持。 |
37 weihongchang 2016-04-18 15:09:18 +08:00 |
38 weihongchang 2016-04-18 15:10:59 +08:00 @weihongchang <p><img src="http://7xsthm.com2.z0.glb.clouddn.com/ihosts2.png" alt=""/></p> |
39 weihongchang 2016-04-18 15:13:24 +08:00 |
40 Micky 2016-04-18 15:30:35 +08:00 r#39 @weihongchang 我比较好奇你托盘上的都是什么应用, 4 个耳朵的圆形 、拐弯箭头、纸飞机……看起来很棒的样子 |
41 weihongchang 2016-04-18 15:42:06 +08:00 |
42 quietjosen OP @weihongchang 哈哈,吓我了一跳;方便就好 ^_^ |
43 scgy5555 2016-04-18 17:32:15 +08:00 额,什么情况下必须用 hosts 而不用 nginx ? |
44 duangaduang 2016-04-18 17:59:43 +08:00 升级账户可以添加更多节点,这么快就不够我用了? |
45 zander 2016-04-18 18:01:39 +08:00 gas mask 用了很久了。 |
46 quietjosen OP @scgy5555 这个,看每个人的开发环境和习惯吧。 |
47 quietjosen OP @duangaduang 哈哈,准资深用户嘛。 |
48 quietjosen OP @zander 所以可以试试新的啦 ^_^ |
49 iCantus 2016-04-18 18:25:30 +08:00 gas mask 和 switch hosts 都很不错,两者能够综合就好了。 gas mask 有托盘,会时时监测 hosts 的改变,这点很好。 switch hosts 是可以同时启用多个配置,提供开关,这点也很好。而目测楼主的轮子造的不好。 |
50 oldj 2016-04-18 18:38:49 +08:00 @quietjosen SwitchHosts! 作者飘过。 需要输入密码这个的确是个问题,不过其实你也可以修改 /etc/hosts 文件的权限, SwitchHosts! 会先尝试写,写入失败才会请求密码。另外,它是开源的,熟悉编程的用户可以检查它的代码实现,确保没有恶意。:-) |
51 quietjosen OP @iCantus 听起来有超级亏。 iHosts 就是把 Gas Mask 和 Switch Hosts 结合了呀。比如有托盘,比如可以同时启用多个配置(选中菜单中某一项就可以了),比如还可以分组。唯一没有的就是监测 Hosts 变化,不过也会考虑的。 别只目测呀,免费下来玩玩呗。当然,轮子还是要继续打磨圆的,虚心接受广大人民群众的改进意见。 |
52 quietjosen OP @oldj 握爪! 明白你的意思,不过如果没有提示的话,我估计很多人不知道自己改权限这事,所以我在 iHosts 中提示用户这么做。麻烦了一点,但求安全,还有就是希望能上架 Mac App Store (再祈祷一次) 一起造好这个轮子 ^_^ |
53 Yien 2016-04-18 19:39:32 +08:00 via iPhone 感谢分享! |
54 quietjosen OP @Yien 嘿嘿,不客气 :) |
55 jinphen 2016-04-19 09:46:23 +08:00 建议可以设置图标,这样只要看对应的图标就知道当前 host 是哪个了 |
56 quietjosen OP @jinphen 这个点子不错,收下了,谢。 |
57 quietjosen OP @wangcheng 已经上架 Mac App Store: https://itunes.apple.com/cn/app/id1102004240?ls=1&mt=12 已经改成等宽字体了,觉得不错的话,帮忙给个好评哦,谢谢 ^_^ |
58 quietjosen OP @indexof 已经上架 Mac App Store: https://itunes.apple.com/cn/app/id1102004240?ls=1&mt=12 觉得不错的话,帮忙给个好评哦,谢谢 ^_^ |
59 quietjosen OP @xwartz 已经上架 Mac App Store: https://itunes.apple.com/cn/app/id1102004240?ls=1&mt=12 觉得不错的话,帮忙给个好评哦,谢谢 ^_^ |
60 quietjosen OP @v1024 已经上架 Mac App Store: https://itunes.apple.com/cn/app/id1102004240?ls=1&mt=12 觉得不错的话,帮忙给个好评哦,谢谢 ^_^ |
61 quietjosen OP @mopvhs 已经上架 Mac App Store: https://itunes.apple.com/cn/app/id1102004240?ls=1&mt=12 觉得不错的话,帮忙给个好评哦,谢谢 ^_^ |
62 quietjosen OP @weihongchang 已经上架 Mac App Store: https://itunes.apple.com/cn/app/id1102004240?ls=1&mt=12 觉得不错的话,帮忙给个好评哦,谢谢 ^_^ |
63 quietjosen OP @kikyous 已经上架 Mac App Store: https://itunes.apple.com/cn/app/id1102004240?ls=1&mt=12 觉得不错的话,帮忙给个好评哦,谢谢 ^_^ |
64 quietjosen OP @Yien 已经上架 Mac App Store: https://itunes.apple.com/cn/app/id1102004240?ls=1&mt=12 觉得不错的话,帮忙给个好评哦,谢谢 ^_^ |
65 quietjosen OP @jinphen 已经上架 Mac App Store: https://itunes.apple.com/cn/app/id1102004240?ls=1&mt=12 觉得不错的话,帮忙给个好评哦,谢谢 ^_^ |
66 daveze 2017-08-26 10:49:24 +08:00 iHosts 有时会跑满一个 cpu,导致风扇呼呼作响; 出现过程大概是:在启动 ihosts 一段时间后,然后让电脑睡眠较长一段时间,再开启电脑,就有这个问题。 |
67 quietjosen OP @daveze 你的系统版本是?已知这个问题:鼠标移至 iHosts 菜单出现 Hosts 预览窗口后,有概率会出现类似问题,技术上可能是在菜单弹出时显示窗口引起的。你是否有类似操作? |
68 daveze 2017-08-26 23:28:56 +08:00 @quietjosen 确实有这样的操作 |
69 daveze 2017-08-26 23:30:24 +08:00 @quietjosen 系统版本是 10.12.6 |
70 quietjosen OP @daveze 我都不确定是我的用法有问题,还是系统有 Bug ;暂时先尽量减少这样的操作吧,我甚至都想屏蔽这个操作。 |