Closed lenovobenben closed 5 years ago
另外,我删除了一些意义不大的算法。 删除了命令行模式,只能用 JSON 导入。我觉得写命令行太麻烦了。
这样搞和原生的SS就不兼容了。 不过,我为啥要兼容它呢?自己能用就行了。反正也不是官方版本。。。
我这个还是不支持AEAD。 加上噪音数据就不用AEAD了吧?你觉得呢?
感谢. 加了一些comments.
Besto: +1 最新版本已经去掉了.
Besto: +1 我也是这么想的, 纯属我懒, 没有实现.
Besto: +1
Besto: +1
Besto: +1 这个当时是因为没有测试环境(现在也没有 XD)
Besto: +1 只要可以主动选择是否关闭来兼容老的 就可以了.
Besto: +1
Besto: +1
Besto: +1 最新版本我已经把ofb类的都删了
Besto: 这个看个人喜好.
这样搞和原生的SS就不兼容了。 不过,我为啥要兼容它呢?自己能用就行了。反正也不是官方版本。。。
Besto: AEAD用BC的库已经可以实现, 有一些接口我稍微改了一下, 就是想实现aead的, 但, 基于太懒和我个人也觉得aead没有那么有用(对于自用, 最好每个人都魔改一点最好了)
为何要尽量兼容ss老的呢, 主要还是为了小飞机这种我没法修改的客户端.
现在CODE和master上的有一点不兼容, 我抽空merge一下(实在不行我把master上的一部分改动revert掉好了)
噪音数据是可以配置 true / false 的。
只要 IV 长度和原生一样,同时关闭噪音。就是兼容原生SS,我也用原生的端测过。
IPV6的话,我是用 vultr 测试的。 这上边有双栈的机器,还有纯 IPV6 的!碉堡了。
我已经用了半年多了。感觉不错。所以通知你一下。
代码的话,我删了很多东西,你那边很多冲突。 建议你把 噪音和自定义IV长度的部分搞一下就行了,不用 merge 我的。
你的这个BUG困扰了我很久 https://github.com/lenovobenben/shadowsocks-vertx/commit/29deaca9ef7fcb28b647adda425c12960d21f7a9
坑的我不要不要的。导致我自定义的IV长度,总是报各种奇怪的错误。
忘了说了。我把你的测试代码都删了。 因为我曾经发生过测试代码通过了,通信仍然有问题的情况。 具体是什么BUG忘记了。 反正你的测试代码不靠谱的。。。
lenovobenben@29deaca 我看了一下 这个地方的逻辑应该不会影响自定义IV长度... 测试代码是本地建了一个server/client 去get一个固定网页, 再对比, 如果测试都没通过表明肯定是有问题, 但反之确实不代表测试过了就没问题...
对了, 说到测试我想起了一个BUG, 当时手抖写错了, 导致https状态下只有第一个接受发送的包是对的...每次都重发了一次数据, http访问居然没问题, https测试由于测试网站payload很短, 确实可以一个包吞下, 测试也过了, 实际使用打死都不行....确实测试还很不健壮..
对了, 说到测试我想起了一个BUG, 当时手抖写错了, 导致https状态下只有第一个接受发送的包是对的...每次都重发了一次数据, http访问居然没问题, https测试由于测试网站payload很短, 确实可以一个包吞下, 测试也过了, 实际使用打死都不行....确实测试还很不健壮..
确实有这个问题!所以我索性不用你这个测了。直接用 chrome 实测
对了, 说到测试我想起了一个BUG, 当时手抖写错了, 导致https状态下只有第一个接受发送的包是对的...每次都重发了一次数据, http访问居然没问题, https测试由于测试网站payload很短, 确实可以一个包吞下, 测试也过了, 实际使用打死都不行....确实测试还很不健壮..
确实有这个问题!所以我索性不用你这个测了。直接用 chrome 实测
要解决这个问题, 还需要一个本地大文件, 本地搭一个server...我看看了本地比较有用的应该是控制流量的CL, 别的都可以先revert掉, 我来合一下...
lenovobenben/shadowsocks-vertx@29deaca 我看了一下 这个地方的逻辑应该不会影响自定义IV长度... 测试代码是本地建了一个server/client 去get一个固定网页, 再对比, 如果测试都没通过表明肯定是有问题, 但反之确实不代表测试过了就没问题...
确实有影响。我的自定义IV长度代码很简单。 就是:如果和标准IV长度一致就不变。 反之则进行MD5。chacha20的则取了MD5的前8位。
我的代码认为 这个 iv 值一定是整个 iv 。哪能想到这个 iv 包含了 iv 之外的数据啊。 我当时打印了好多日志,才定位到原因。
有个DNS解析的问题非常诡异。不知道你碰到过没?反正我的搬瓦工碰到过。
就是一个 VPS 不支持 IPV6。但是 vertx 去连接一个域名(双栈域名,比如 www.google.com)。却返回了 ipv6 地址(大部分情况返回的是 ipv4,极少数是 ipv6)!导致最终连接失败。
这种现象出现的概率极低,我遇到过五六次吧。 但是我确定是有的。当时是有日志记录的。
因此纯IPV4的环境我就强制加上了preferIPv4Stack 这个参数,彻底禁用掉IPV6。
网上有人说是 netty DNS 协议的 BUG,我就没深究过了。
Hard to merge directly. Merge to a tmp branch and will poring the change to the master branch. Thanks very much
1 删除OTA。这个 OTA已过时,无法抵御攻击。 2 新增 RC4-MD5。我觉得这个加密,纯做混淆足够了。 3 自定义 IV 长度。自定义的IV长度。防止 SS 的 addrType 探测。 4 自定义超时时间。适配不同的网络质量。 5 新增 IPV6 支持。已经全面测试了IPV6。不管是目标网站是IPV6,还是VPS本身是IPV6。都没有问题。 6 新增随机噪音数据。有点费流量。但是更难主动探测。具体看代码。 7 自定义DNS服务器。服务器端统一使用谷歌的,分 IPV4 和 IPV6 两种。 8 升级依赖JAR。新的 VERTX 应该更好点吧。 就这些了。
祝工作愉快!