Specht--开源的基于 Network Extension 的 Mac 版代理

2016-08-12 13:41:55 +08:00
 nbndco

之前写了一个 iOS/macOS 的库,NEKit,还在更新。功能可以自己看,简单点说就是封装了 Surge iOS 的核心功能,包括 tun2socks 。

有一些人想要一个 demo ,所以就把一个我自己写的之前用了很久的代理软件的界面基于 NEKit 写了一个。 功能可以比照 Surge 的核心功能,我就不列了。

Specht 有两个版本。

Specht是基于 Network Extension 的。可以自动设置代理,可以转发所有的 TCP 流,包括所有不支持代理的软件。但是苹果的限制是 Developer ID 是不能签名需要 Network Extension 的应用的,想要用 Specht ,必须要自己用有 Network Extension 权限(需要单独申请,免费)的开发者账户( 99 刀),或者我发布到 Mac App Store 。所以想要用的话,至少你要有开发者账户,然后自行编译签名。你应该可以注意到,不同于 iOS , Surge 的 Mac 版也是不基于 Network Extension 的。所以在这个意义上, Specht 的功能比 Surge 的 Mac 版要强,当然我是希望 Surge 直接基于 Network Extension 上架 App Store 的(这样我估计我也没动力更新 Specht 了),当然别卖 648 就好。 iOS 上的 Surge 很棒(虽然曾经很不稳定),所以我对于写一个 Specht 的 iOS 版完全没有任何动力。

但考虑到这样就几乎没人能用,所以又有了SpechtLite。这个版本可以直接下载,人人可用。不基于 Network Extension 的问题是不能自动设置代理,只有支持代理的应用才能使用,但是如果 Surge 的 Mac 版够用的话,那么 SpechtLite 也是够用的。

如何选择:

  1. 有开发者账户并且有 Network Extension 的权限 -> Specht
  2. 只是想有个基于规则的代理,并且有 Surge 的 iOS 版 -> Mac 版的 Surge
  3. 只是想有个基于规则的代理,没有 Surge 想要 Mac 版的 Surge 的功能但是不在意没有华丽的 GUI -> SpechtLite
  4. 什么都想要而且还不想花钱的,你可以看着 Specht 基于 NEKit 自己写一个。有了 NEKit 其实也就是界面写起来比较烦心

有问题的话可以去 Gitter 问

19337 次点击
所在节点    macOS
92 条回复
nbndco
2016-08-13 06:50:48 +08:00
@ProfFan 发现这个问题了……但是我想的是强制开源……查了一下似乎没有这样的许可证
nbndco
2016-08-13 06:59:38 +08:00
@ProfFan 所以目前似乎 Specht 只有我本人能发布……这我怎么改好
NEKit 是 BSD 的,大家还是可以用 NEKit 写一个发布 App Store 的……
Vanson
2016-08-13 08:15:15 +08:00
@nbndco 快上商店吧,非常感谢
Lattez
2016-08-13 10:21:13 +08:00
看着非常赞……本来已经准备买快要单独卖授权的 surge for mac 了……
VmuTargh
2016-08-13 11:57:23 +08:00
原来 NEKit 就是尼写的啊。赞一个!
不过窝好像记得开源上 App Store 可以采用源代码一份授权( GPL ),然后二进制一份授权。具体的可以问问有类似经验的开发者 w
nbndco
2016-08-13 12:20:08 +08:00
@VmuTargh 主要问题是这样的,版权在我,我发布的时候想怎样授权苹果自然都没问题。但我仅给了 GPL 授权之后所有其他人分发的时候必须要提供所有的代码能够重新构建二进制版本。问题是苹果会对用户发布的二进制包进行改动,而这个改动的过程是没有代码的,由于其他人不能进行 GPL 以外的授权,分发其他人上传的软件苹果会违反 GPL ,因此苹果是不上架仅有 GPL 协议的软件的。
VmuTargh
2016-08-13 12:40:00 +08:00
@nbndco soga THX
g67261831
2016-08-13 14:06:56 +08:00
点赞,已 star
Sequencer
2016-08-13 19:04:30 +08:00
@nbndco 补充协议了?
nbndco
2016-08-13 20:40:35 +08:00
@Sequencer 并没有, NEKit 是 BSD 3 , Specht 是 GPLv3 ,没有改过
alang
2016-08-14 07:25:48 +08:00
要手工写配置文件,时间宝贵,没时间研究。
tengyoou
2016-08-15 12:15:02 +08:00
懒得折腾,已经花了 648 买了 surge ,为这个开源点赞。。。。
paradoxs
2016-08-16 18:51:22 +08:00
收藏了, 请务必发到 mac app store
majinjing3
2016-08-16 19:48:23 +08:00
点赞!支持下啦!
blankwonder
2016-08-16 20:33:01 +08:00
支持一下,另外说下 Surge Mac 不使用 NE 的原因是: Mac 环境下通过 tun 转发所有流量代价太大, UDP , ICMP 等等协议都要单独再做一次 NAT 支持,广播包也会有一定影响,且 Mac 中文系统下 NE 有 Bug ,大部分用户会用不了。
ddqp
2016-08-16 20:42:47 +08:00
@blankwonder 现身说法
dongoo
2016-08-16 20:49:59 +08:00
点赞收藏了 👍
nbndco
2016-08-16 20:58:33 +08:00
@blankwonder 我想过这个问题,除了 UDP 和 TCP 所有的包都要丢, ipv6 的话可能有更多问题,但是就个人角度完全没有影响。
tony1016
2016-08-17 09:29:52 +08:00
有意思
WildCat
2016-08-18 05:19:40 +08:00
楼主您好,想问下你 NEKit 是什么 License ?
看了下没太明白是啥

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

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

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

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

© 2021 V2EX