V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
coyove

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

  •  8
     
  •   coyove ·
    coyove · Sep 9, 2017 · 31572 views
    This topic created in 3152 days ago, the information mentioned may be changed or developed.

    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

    36 replies    2017-09-14 11:21:43 +08:00
    JohnLou
        1
    JohnLou  
       Sep 9, 2017 via iPhone
    先支持下斗士。
    ixinshang
        2
    ixinshang  
       Sep 9, 2017 via Android
    打算尝试下
    patx
        3
    patx  
       Sep 9, 2017 via Android
    感谢分享
    Shazoo
        4
    Shazoo  
       Sep 9, 2017   ❤️ 1
    支持下。试试去~
    athanos
        5
    athanos  
       Sep 9, 2017 via Android
    手动点赞。
    v1024
        6
    v1024  
       Sep 9, 2017 via iPhone   ❤️ 1
    特征太明显,又增加了复杂性,和直接开一个 https proxy 相比,并没有什么优势。
    doubleflower
        7
    doubleflower  
       Sep 9, 2017 via Android
    @v1024 什么特征?直接开 https proxy 才特征明显
    Shazoo
        8
    Shazoo  
       Sep 9, 2017
    刚测试了下,不错。和$$相差不大~~
    ccsexyz
        9
    ccsexyz  
       Sep 9, 2017
    感觉与 ss 相比并没有明显的性能优势啊
    我这边 ss 用 speedtest 测速, 小鸡是 vultr 512M
    aes-256-cfb: 64mbps 10% CPU 3.2% mem
    chacha20: 66mbps 4.89% CPU 2.8% mem
    coyove
        10
    coyove  
    OP
       Sep 9, 2017
    @ccsexyz 确实没性能优势,现在也没能力没精力优化
    0xcb
        11
    0xcb  
       Sep 9, 2017 via Android
    多一条路总是好的
    ccsexyz
        12
    ccsexyz  
       Sep 9, 2017
    这个思路确实很不错,比 ss 的 simple-obfs 好很多。另外会对 HTTP 请求的 uri 进行处理吗?
    coyove
        13
    coyove  
    OP
       Sep 9, 2017
    @ccsexyz 会的,防止绝对 URI 路径
    newworld
        14
    newworld  
       Sep 9, 2017
    有做过安全性测试吗">? 会不会对服务器造成漏洞
    shoaly
        15
    shoaly  
       Sep 9, 2017
    问个问题, 感觉 host 这样混淆, 为何不直接:
    写一个 www.baidu.com, 然后真实的 host 放到 body 当中去.. 这样岂不是更好
    n6DD1A640
        16
    n6DD1A640  
       Sep 9, 2017
    多个轮子总是好的,点个 star 支持一下
    akira
        17
    akira  
       Sep 9, 2017
    不错,支持下。
    coyove
        18
    coyove  
    OP
       Sep 9, 2017
    @shoaly
    混淆的方式千差万别,你可以在 header 里面加一个 field 存 host,也可以存到 Cookie 的某个值里,我只是选择了我比较喜欢的方式 XD
    BombayCat
        19
    BombayCat  
       Sep 9, 2017 via Android
    技术里岛 po(`・ω・)
    ycdjhh
        20
    ycdjhh  
       Sep 10, 2017 via Android
    运行 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)是什么情况
    coyove
        21
    coyove  
    OP
       Sep 10, 2017
    @ycdjhh net.OpError.Source 这个字段直到 go1.5 才有,你的版本可能过低( go version )
    whitegerry
        22
    whitegerry  
       Sep 10, 2017
    @coyove 用 surge 配合, 怎么避开 client 端 ip 判断?
    coyove
        23
    coyove  
    OP
       Sep 10, 2017
    @whitegerry 加上 -proxy-all 不判断中国 IP 和网站
    ycdjhh
        24
    ycdjhh  
       Sep 10, 2017 via Android
    确实是 go 版本问题,目前 WiFi 状态下启用速度可以也比较省心,如何才能在移动数据状态下启用呢?
    coyove
        25
    coyove  
    OP
       Sep 10, 2017
    @ycdjhh 需要第三方 app,比如 drony。现阶段因为没有原生 app 支持,移动体验并不好,安心用$$吧。。。
    ycdjhh
        26
    ycdjhh  
       Sep 10, 2017 via Android
    下午试了下可以在 APN 中添加代理,数据流量就可以使用,而且我特意没 adb 去除感叹号
    JamesMackerel
        27
    JamesMackerel  
       Sep 11, 2017
    建议楼主注意保护自己。
    whitegerry
        28
    whitegerry  
       Sep 12, 2017
    服务器上怎么在后台运行?
    whitegerry
        29
    whitegerry  
       Sep 12, 2017
    用 nohup 好像可以
    whitegerry
        30
    whitegerry  
       Sep 12, 2017
    @coyove 加了-proxy-all 之后还是区分了 ip, 我是想让 gofw 做全局, 用 surge 来分流
    coyove
        31
    coyove  
    OP
       Sep 12, 2017
    @whitegerry
    加了-proxy-all 以后看看 ipip.net (国内)和 ipinfo.io (国外)显示的 IP 是什么
    qianguozheng
        32
    qianguozheng  
       Sep 12, 2017
    还要租个服务器,楼主干脆点,搞个小企业卖吧
    whitegerry
        33
    whitegerry  
       Sep 12, 2017
    @coyove 现在好了
    停止用什么命令?
    molezznet
        34
    molezznet  
       Sep 14, 2017
    很好用哦, 至少电脑上简单.
    android 还是不方便
    molezznet
        35
    molezznet  
       Sep 14, 2017
    @whitegerry kill 可以结束 nohup
    whitegerry
        36
    whitegerry  
       Sep 14, 2017
    @molezz765
    作者更新很勤快
    android 的 nexus player 上用 proxydroid 和 drony 折腾了不少时间, 昨晚上才配合 drony 搞定.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1015 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 105ms · UTC 19:03 · PVG 03:03 · LAX 12:03 · JFK 15:03
    ♥ Do have faith in what you're doing.