goflyway,一个简单的科学 HTTP 代理工具

2017-09-09 16:23:49 +08:00
 coyove

https://github.com/coyove/goflyway

基于 golang。自用了半个月,稳定运行

没啥技术含量,都是通过预设的密钥来加密信息。不同的是 goflyway 基于 HTTP,比$$要高一层,更类似于$$r 的 http 混淆模式。

简单的说 goflyway 只干了两件事(但已经足够了):

  1. 对于 HTTP 流量,加密 Host 字段、Cookie 字段和 body,然后转发
  2. 对于 HTTPS 流量,goflyway 作为隧道代理再加密一层,防止 SSL 握手网站证书被检测到。当然建立隧道时 Host 也是加密的

流量的加密即采用 AES256,Host 的加密准确的说应为混淆,其只改变二级(或三级、四级。。)域名,例如:

client 端会区分国内外流量,其判断基于中国的 IP 段和china-list

因为是基于应用层的 HTTP,传输肯定会有 overhead,性能不用指望,但也不慢多少,cpu 占用略低一些:

$$r http goflyway

系统占用忘截图了,50mbps,linode 1G,大概<10%cpu,<5%mem

30782 次点击
所在节点    分享创造
36 条回复
JohnLou
2017-09-09 16:26:25 +08:00
先支持下斗士。
ixinshang
2017-09-09 16:42:52 +08:00
打算尝试下
patx
2017-09-09 16:49:14 +08:00
感谢分享
Shazoo
2017-09-09 18:00:04 +08:00
支持下。试试去~
athanos
2017-09-09 18:07:33 +08:00
手动点赞。
v1024
2017-09-09 18:08:02 +08:00
特征太明显,又增加了复杂性,和直接开一个 https proxy 相比,并没有什么优势。
doubleflower
2017-09-09 18:13:18 +08:00
@v1024 什么特征?直接开 https proxy 才特征明显
Shazoo
2017-09-09 18:17:27 +08:00
刚测试了下,不错。和$$相差不大~~
ccsexyz
2017-09-09 20:00:15 +08:00
感觉与 ss 相比并没有明显的性能优势啊
我这边 ss 用 speedtest 测速, 小鸡是 vultr 512M
aes-256-cfb: 64mbps 10% CPU 3.2% mem
chacha20: 66mbps 4.89% CPU 2.8% mem
coyove
2017-09-09 20:18:09 +08:00
@ccsexyz 确实没性能优势,现在也没能力没精力优化
0xcb
2017-09-09 20:28:41 +08:00
多一条路总是好的
ccsexyz
2017-09-09 20:39:41 +08:00
这个思路确实很不错,比 ss 的 simple-obfs 好很多。另外会对 HTTP 请求的 uri 进行处理吗?
coyove
2017-09-09 20:57:10 +08:00
@ccsexyz 会的,防止绝对 URI 路径
newworld
2017-09-09 21:33:06 +08:00
有做过安全性测试吗">? 会不会对服务器造成漏洞
shoaly
2017-09-09 21:36:01 +08:00
问个问题, 感觉 host 这样混淆, 为何不直接:
写一个 www.baidu.com, 然后真实的 host 放到 body 当中去.. 这样岂不是更好
n6DD1A640
2017-09-09 21:55:17 +08:00
多个轮子总是好的,点个 star 支持一下
akira
2017-09-09 22:00:18 +08:00
不错,支持下。
coyove
2017-09-09 22:06:28 +08:00
@shoaly
混淆的方式千差万别,你可以在 header 里面加一个 field 存 host,也可以存到 Cookie 的某个值里,我只是选择了我比较喜欢的方式 XD
BombayCat
2017-09-09 22:33:02 +08:00
技术里岛 po(`・ω・)
ycdjhh
2017-09-10 09:46:02 +08:00
运行 debug 后出现 logg/logg.go:62: op.Source undefined (type *net.OpError
has no field or method Source)
logg/logg.go:63: op.Source undefined (type *net.OpError
has no field or method Source)
logg/logg.go:68: op.Source undefined (type *net.OpError
has no field or method Source)
logg/logg.go:70: op.Source undefined (type *net.OpError
has no field or method Source)
logg/logg.go:73: op.Source undefined (type *net.OpError
has no field or method Source)是什么情况

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

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

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

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

© 2021 V2EX