V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
holyshawn
V2EX  ›  分享创造

ballade: 支持 IPv6 的轻量级 http 代理,可用 SwitchyOmega 规则分流

  •  
  •   holyshawn · 2016-04-23 09:56:45 +08:00 · 2997 次点击
    这是一个创建于 3144 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前几周之前发过一次,好像发错版了,而且突然又发现以前直接 fork 的项目 Github 连搜索都是二等公民,所以在原项目 MIT 协议的允许下,重新发布一个 MIT 协议的新项目,以前发的地址: https://v2ex.com/t/269824

    Github 项目传送门: https://github.com/holyshawn/ballade

    本来 cow 用着也是好好的,但就是不支持 IPv6 ,这让我们教育网用户简直无法忍受,必须手动维护一份白名单才行,而 cow 的白名单只支持 suffix ,也是不怎么通用。

    于是乎,自己动手, fork 了一份 python 版 http 调度代理源码,改了改 bug ,重构加强一下,加了 IPv6 , SOCKS5 ,多进程, SwitchyOmega 规则的支持。

    个人觉得自动判断或者通用规则什么的不如直接用平时用 Chrome 积累的规则合适,特别是 IPv6 的网络环境。

    这种代理感觉主要用途在于帮助手机等没法很好的智能分流的设备进行代理分流,以及对于Android等拿不到原生IPv6地址的系统可以用这个访问IPv6网站。

    ballade 指的是 ballade tempo ,也就是民谣速度,不怎么快的~
    10 条回复    2016-04-26 15:31:13 +08:00
    bazingaterry
        1
    bazingaterry  
       2016-04-23 11:46:34 +08:00
    同是校园网用户,支持 IPv6 正需要,给作者 star 一个。 btw ,没用过 SwitchyOmega ,能不能科普一下分流规则是怎样的? IPv6 优先还是?
    holyshawn
        2
    holyshawn  
    OP
       2016-04-23 13:59:44 +08:00
    @bazingaterry 程序首先会用一个网址判断 IPv6 是否连通,这个可以在配置文件中自定义,默认是 www.yahoo.com 的 443 端口。如果连通则若一个域名有 IPv6 地址,就强制用 IPv6 链路去连。如果不连通则只使用 IPv4 链路。
    分流规则在 README 中有,很简单的通配符,看看就明白了。
    skydiver
        3
    skydiver  
       2016-04-23 15:15:28 +08:00 via iPad
    名字不一样的话, fork 的项目搜索并不会有区别吧
    scarecrow
        4
    scarecrow  
       2016-04-23 15:43:49 +08:00
    这里有个更轻的。 500 行代码 C 语言版本,还支持科学上网 https://github.com/examplecode/mproxy
    holyshawn
        5
    holyshawn  
    OP
       2016-04-23 16:52:20 +08:00
    @skydiver 比方你搜索 meow ,这是 cow 的一个 fork 白名单版本,直接搜索完全搜不到,必须搜索 meow fork:true ,才能搜到 renzhn/MEOW
    holyshawn
        6
    holyshawn  
    OP
       2016-04-23 16:55:12 +08:00
    @scarecrow 下了试了下,这个主要是作为 ss 的轻量级替代吧,没有分流功能,和 ballade 的定位不同。
    而且普通代理无法连接 IPv6 网站,亲测:
    Apr 23 2016 16:51:21 Host:www.google.com port: 443 io_flag:0
    Apr 23 2016 16:51:21 ======= forward request to remote host:www.google.com port:443 =======
    Apr 23 2016 16:51:21 receive CONNECT request
    Apr 23 2016 16:51:21 Cannot connect to host [www.google.com:443]
    Apr 23 2016 16:51:21 Host:bt.neu6.edu.cn port: 80 io_flag:0
    Apr 23 2016 16:51:21 Cannot connect to host [bt.neu6.edu.cn:80]
    skydiver
        7
    skydiver  
       2016-04-23 17:22:32 +08:00 via iPad
    @holyshawn 还真是这样的。太不科学了
    holyshawn
        8
    holyshawn  
    OP
       2016-04-24 10:11:53 +08:00
    @skydiver 所以以后大改的非同名项目根据协议允许还是独立出来好,不然感觉都成了个人玩具了。。。
    skydiver
        9
    skydiver  
       2016-04-24 10:17:33 +08:00 via iPad
    @holyshawn 我倒是觉得影响没那么大,很多知名项目也都是 fork 的别人。大部分人还是从 Google 搜索进来的,用 Github 搜索的不是很多。
    holyshawn
        10
    holyshawn  
    OP
       2016-04-26 15:31:13 +08:00
    感谢各位的收藏与 star !
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2705 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 07:43 · PVG 15:43 · LAX 23:43 · JFK 02:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.