iHosts - 修改神器 (Mac)

2016-04-18 09:16:17 +08:00
 quietjosen

我需要 iHosts 吗?

如果你需要修改 /etc/hosts 来切换开发环境,甚至已经在用脚本、工具来编辑 Hosts ,你真的需要试试 iHosts.

iHosts 怎么用?

一般的 Hosts 编辑工具,都是将 Hosts 文件进行整体替换。而 iHosts 管理的粒度更小,可以仅仅更新其中的一部分。

比如,如果你需要在开发环境(如 192.168.1.80 )、测试环境(如 192.168.1.88 )之间切换,你可以:

当然,实时查看 /etc/hosts 这样的功能也不能少:

沙盒应用与权限

由于 iHosts 即将上架 Mac App Store ,所以 iHosts 采用沙盒模式。进而,你需要在首次运行时,允许 iHosts 访问 /etc/hosts 文件,并且在 Terminal 中通过命令允许当前用户修改 /etc/hosts 文件。

虽然稍微有些麻烦,但是更安全。如果是直接弹一个让我输入管理员密码的框,我还是有些慌的,尤其是前不久的 Transmission 事件...

有点意思,怎么玩?

废话不说,直接 >>> 点我免费下载 <<<

不过,计划上架 Mac App Store 后会有收费版本,免费版本会有一些功能限制。不过没关系,可以先试试,如果你都碰不到受限的地方,说明免费版对你绝对够用啦。

欢迎体验,围观改变世界。

18212 次点击
所在节点    macOS
70 条回复
Strikeactor
2016-04-18 09:35:47 +08:00
挺好玩儿,不过“你需要在首次运行时,允许 iHosts 访问 /etc/hosts 文件,并且在 Terminal 中通过命令允许当前用户修改 /etc/hosts 文件”这个感觉更麻烦啊。。
一定要设置成当前用户改 hosts 不用输密码的话, Alfred 里一个 sed 就可以切了,这玩意安全性有点问题
wangcheng
2016-04-18 09:41:39 +08:00
建议编辑器使用等宽字体。
quietjosen
2016-04-18 09:43:31 +08:00
@Strikeactor 恩, hosts 有很多修改方式,直接使用 sed 操作 /etc/hosts 文件是需要点技术了,如果用别人封装好的插件会好些。但如果每次修改都需要输入密码就不太方便,如果将密码保存到钥匙串里会好些。但总感觉保存密码这事有点不放心...

安全和便利确实是矛盾的,是保存 Root 密码安全,还是允许当前用户修改 Hosts 更好,往深了想可能不一定呢。
quietjosen
2016-04-18 09:43:58 +08:00
@wangcheng 恩,收到,感谢。
quietjosen
2016-04-18 09:46:51 +08:00
@Strikeactor 还是要感谢回复;我也是自己需要、周围的开发朋友也有类似的需求,才想到干脆折腾个工具出来方便大伙,这才有了 iHosts ;

另外,只是有首次运行时才有设置的必要,之后都不再需要。而且,是因为有沙盒的限制,才需要让用户拖动选择 /etc/hosts 文件。又是安全与便利的矛盾啊...
newbieo0O
2016-04-18 09:51:30 +08:00
shmilyin
2016-04-18 09:51:53 +08:00
建议加个更新 dns 缓存的功能
quietjosen
2016-04-18 09:59:36 +08:00
@newbieo0O 恩,这个之前也用过,但有个严重的问题:需要我在它的 App 里输入当前账户的密码,一般这种情况我是拒绝的。

还有个使用上的便利问题:不支持分组功能。也就是说,我在激活一个选项时,很可能想禁用另一个选项。这样的需求在这个 App 里要点 2 次。
quietjosen
2016-04-18 10:00:10 +08:00
@shmilyin 看来是资深啊;这个已经在计划中的,近期就会搞。
indexof
2016-04-18 10:03:42 +08:00
赞啊, 编辑框增加配色就好了,
quietjosen
2016-04-18 10:05:24 +08:00
@indexof 恩恩,已经在计划中了...
xwartz
2016-04-18 10:25:49 +08:00
支持
quietjosen
2016-04-18 10:29:11 +08:00
@xwartz 感谢 ^_^
v1024
2016-04-18 11:15:21 +08:00
颜值不错,马克。
quietjosen
2016-04-18 11:17:27 +08:00
@v1024 被赞颜值,诚惶诚恐...
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 。不过你是要上架的,就不知道这个属不属于商店的条约禁止的了。
mopvhs
2016-04-18 11:35:31 +08:00
棒呆,期待轮子更圆一点

现在在用 Gas Mask https://github.com/2ndalpha/gasmask
v1024
2016-04-18 11:56:32 +08:00
@quietjosen 因为基本都是原生 UI 和布局逻辑, 习惯了 osx 的会很舒服,比有些人自己“设计”的强多了。
quietjosen
2016-04-18 12:04:40 +08:00
@Strikeactor 恩,你说的有道理,我会再认真考虑。

Helper 的方式有这样的问题:
1 ,应该是不能上架的;一些上架的 App ,都是让用户到其官网手动下载 Helper (不受沙盒、 Mac App Store 约束),可想有些麻烦。
2 ,其实还是相当于让一个 App 拥有超级权限。可我怎么保证这个 App 不作恶呢?即使现在不作恶,以后呢?即使自己不作恶、会不会像 Transmission 一样被利用?这也是有安全风险的。

风险更低的做法是:手动使用 sudo 改 hosts ;但明显不便利,矛盾啊。。。
quietjosen
2016-04-18 12:05:14 +08:00
@mopvhs 恩好啊,哪里不圆就来踩哦~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/271879

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX