Redsocks 的 Go 实现: avege

2017-01-13 09:38:35 +08:00
 missdeer
照惯例,名字仍是。。。
源代码托管地址: https://github.com/missdeer/avege (不知道有没有少提交东西)
我自己在 Windows , Mac 和 Linux 上使用超过 1 年时间了,中间陆陆续续改些 bug ,加些新 feature 。
番羽土啬两件事:
1 , DNS 无错解析, avege 本来只想做的 redsocks 的 fork 的,用 Go 做发现有些事情比较容易,于是顺便做了 DNS proxy ,这部分功能跟某个版本的 chinadns 用的方案比较相似,同时向国内外的几个 DNS server 请求,如果返回 IP 是国内的,就用国内的 DNS server 的结果,反之用国外的 DNS server 结果。然后用了 redis 做缓存,所以运行 avege 得装 redis 。最好前面再套个 dnsmasq ,因为我感觉目前的实现根据 TTL 刷掉缓存的做法对 DNS client 来说解析速度有点慢,不知道什么原因。
2 ,内容高效可靠传输。前端暴露一个 socks5 端口(同 ss-local 的工作方式),或一个兼容 iptables NAT 的端口(同 ss-redir 的工作方式)。后端可以接 socks4/4a/5 , http/https , ss/ssr 协议的服务器。支持 ssr 的几种常用混淆和协议。

更多详细内容看源代码或自己尝试吧。然后有个tg交流群: https://t.me/avege
求各种 Star , PR 。
2744 次点击
所在节点    分享创造
14 条回复
mgna17
2017-01-13 09:44:05 +08:00
亦可赛艇啊
tony1016
2017-01-13 10:06:22 +08:00
interesting
leaves615
2017-01-13 10:49:47 +08:00
redis 就有点重了。
AstroProfundis
2017-01-13 11:36:30 +08:00
噗类库叔的推友项目集系列
leopku
2017-01-13 12:33:27 +08:00
无责任推荐用 libshmcache 换掉 redis
pagxir
2017-01-13 16:04:04 +08:00
dns 其实建议参考我之前发的原理。
kurtrossel
2017-01-13 16:05:36 +08:00
感谢分享~
xdeng
2017-01-13 16:25:44 +08:00
redis 看到需要依赖 就不想玩了
spice630
2017-01-13 20:43:34 +08:00
解决什么问题的?
yivanus
2017-01-14 14:35:02 +08:00
@leaves615 叶子叔,是你吗??哈哈。。 gzingress
leaves615
2017-01-14 15:25:06 +08:00
yivanus
2017-01-14 15:34:13 +08:00
@leaves615 想不到在这里再遇到了。。我是 yivanus 。
desterfx
2017-01-14 16:39:36 +08:00
性能怎么样?楼主有没有做过 benchmark ?
neroxps
2017-01-17 14:09:30 +08:00
前来支持下。

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

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

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

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

© 2021 V2EX