Commit Graph

897 Commits

Author SHA1 Message Date
e1732a364fed
7764155118 修订cmd,gui代码 2022-12-28 10:45:09 +08:00
e1732a364fed
f564a8727d 修订示例,cmd代码;添加终端显示qrcode功能;新增noutils编译tag 2022-12-28 09:04:25 +08:00
e1732a364fed
918b14061f 令ss返回的conn实现utils.User接口,用于user分流 2022-12-28 00:04:28 +08:00
e1732a364fed
49a4366a39 补充提交上一个commit遗漏的部分 2022-12-27 20:47:09 +08:00
e1732a364fed
8ab14efb16 将3d80f6a的为smux实现user分流的方式推广到udp和vless/trojan 2022-12-27 20:34:24 +08:00
e1732a364fed
54419e9515 修订示例,统一将 advLayer = 改为 adv = 2022-12-27 19:47:14 +08:00
e1732a364fed
3d80f6a305 令smux+simplesocks支持user分流;fix #217
通过在utils添加 UserAssigner接口, 并在此用例时调用SetUser来达到目的
2022-12-27 19:41:42 +08:00
e1732a364fed
38ff099550 修订代码,文档;修复vmess+smux在网络延迟略高时连不上的bug
这是因为, vmess的smux的firstpayload部分写错了,只不过因为内网测试
网速太快,没有读到firstpayload,所以没测出来这个错误。

同时,还发现vmess的aead部分的 下面判断过于严苛:

	if l > chunkSize && r.shakeParser == nil{
		return 0, fmt.Errorf("vmess aead: l>chunkSize(16k), %d", l)
	}

这会在vmess+smux 在网络延迟略高时大量存在

因此将其注释掉.
2022-12-27 17:20:46 +08:00
e1732a364fed
9acb5ae99e 修订文档 2022-12-27 10:43:40 +08:00
e1732a364fed
78827d6804 修订示例, 将 utls = true 统一改为 tls_type = "utls" v1.2.5-beta.3 2022-12-27 10:28:23 +08:00
e1732a364fed
997a7152a0 支持打印出tls的具体类型 2022-12-27 10:11:32 +08:00
e1732a364fed
50d7e373ce 修订代码 2022-12-27 09:50:17 +08:00
e1732a364fed
e841d258b1 修订shadowTls代码;取消shadowTls的readv, 添加writev
经过思考,readv应该不会有什么性能提升,因为需要解析数据并重新分包;
通过实现writev,可以将从tcp流readv得到的数据写入,配合readv得到性能提升
2022-12-27 09:09:51 +08:00
e1732a364fed
6e9808926b 修订shadowTls代码 2022-12-27 08:16:03 +08:00
e1732a364fed
60e8124bde 将tlsLayer.Conn从结构改为接口 2022-12-26 18:33:16 +08:00
e1732a364fed
3c9aed0435 修订代码;为shadowTls添加readv支持 2022-12-26 18:21:49 +08:00
e1732a364fed
0ba7541a8e 修订代码使前一个commit可用 2022-12-26 08:11:34 +08:00
e1732a364fed
a704f77eb4 重构readv代码,将MultiReader分为 BuffersReader和Readver两种
Readver是因为可以暴露出底层连接所以能加速;而BuffersReader是
因为协议对于多buf的读取支持良好所以可以加速,逻辑完全不同
2022-12-26 07:50:44 +08:00
e1732a364fed
e92faf7f9f 继续移动readv函数到utils 2022-12-25 13:00:03 +08:00
e1732a364fed
a88dc05efe 将readvPool代码移动到utils包 2022-12-25 12:23:17 +08:00
e1732a364fed
0b5c274555 为trojan和simplesocks实现SpliceReader 2022-12-25 11:55:49 +08:00
e1732a364fed
00110b9006 加强splice功能;添加SpliceReader接口;从vless->direct方向也使用splice
一般来说vless->direct方向因为 vless使用了tls,是不可以使用splice的
然而,如果是使用vless接受回落的话,则这个回落连接是可以进行splice的,
因为tls层已经被上级剥离了.
2022-12-25 11:33:31 +08:00
e1732a364fed
ea72599649 将ClassicCopy从netLayer移动到utils 2022-12-25 10:33:29 +08:00
e1732a364fed
8de23403f4 方法改名 CanSplice->CanSpliceWrite;EverPossibleToSplice->EverPossibleToSpliceWrite 2022-12-25 10:11:51 +08:00
e1732a364fed
033dfa617e 修订代码 2022-12-25 10:05:26 +08:00
e1732a364fed
0487442ec0 注释掉 defer put_readvMem(readv_mem),关联 #215 2022-12-25 09:55:20 +08:00
e1732a364fed
da9d42aeb6 修订cmd和machine的代码
去掉machine的 appConf成员,改为内嵌AppConf

vsConf 增加 ApiServerConf
2022-12-24 18:15:20 +08:00
e1732a364fed
b3ebc52037 修订代码 2022-12-24 16:41:19 +08:00
e1732a364fed
816430a364 close #213, 移除极简模式 2022-12-24 13:44:25 +08:00
e1732a364fed
82c58529d1 修订gui代码 2022-12-24 13:20:43 +08:00
e1732a364fed
ded4d099ee 修订代码; 移除 Makefile 中 build_on信息 2022-12-24 12:52:30 +08:00
e1732a364fed
0bb3e23908 修订代码 2022-12-24 12:01:43 +08:00
e1732a364fed
0ed6621bf6 Merge branch 'main' of https://github.com/e1732a364fed/v2ray_simple 2022-12-23 17:37:53 +08:00
e1732a364fed
e00aa2452f 修订代码 2022-12-23 17:34:45 +08:00
e1732a364fed
817cee43d3 修订文档;对first payload read错误的日志进行降级
Warn 变Info,Err变Warn
2022-12-23 17:33:40 +08:00
e1732a364fed
b347ba4f01 修订代码,示例;完善tls_cipherSuites配置的解析 2022-12-23 16:26:30 +08:00
e1732a364fed
edb870ae0f 修订代码,示例 2022-12-23 16:22:16 +08:00
e1732a364fed
f313c9fdc2 修订cmd代码,netLayer添加GetSystemDNS, SetSystemDNS ,PrintAllInterface 2022-12-23 13:22:27 +08:00
e1732a364fed
0b2302f0d2 修订代码 2022-12-23 11:30:35 +08:00
e1732a364fed
ce80aafc91 close #208; 令grpc回落到uds时能被nginx正常响应; 2022-12-23 11:03:14 +08:00
e1732a364fed
037638368d 修订代码,令grpc回落写入响应头,关联 #208 2022-12-23 10:37:44 +08:00
e1732a364fed
2c35f66157 修订代码,令grpc回落支持uds,关联 #208 2022-12-23 09:22:24 +08:00
e1732a364fed
33fd22019b 修订文档,示例 2022-12-22 22:49:47 +08:00
e1732a364fed
a5254961b2 修订代码,示例 2022-12-22 21:35:32 +08:00
e1732a364fed
7a0dac54c0 修订代码文档示例;补全shadowTls中的timeout 2022-12-22 21:05:20 +08:00
e1732a364fed
f1d36cd76f 修订示例;给vmess客户端在mux情况下加锁
之所以 vless和trojan不需要加锁,是因为它们的上级 tls层是线程安全的

如果要裸奔trojan+mux的话,还是一样需要枷锁
v1.2.5-beta.2
2022-12-22 20:02:32 +08:00
e1732a364fed
13589300ef 修订示例文档; use_mux = true配置改为 mux = true
并使用替换方式令 老配置依旧可用
2022-12-22 19:54:37 +08:00
e1732a364fed
3b9ffbe3b0 修订代码,文档;通过替换机制令 utls = true 配置依旧有效
因为新代码采用了 tls_type = "utls" ,且移除了 utls 配置,
为了保证兼容,使用替换方式预先替换为 tls_type = "utls"
2022-12-22 18:10:40 +08:00
e1732a364fed
3c754a0a89 feat: 实现 shadowTls v2;修订示例,文档,代码; 添加shadowTls的示例文件
shadowTls v2时客户端自动使用utls,且增强了探测防御

proxy.SetCommonReadTimeout -> netLayer.SetCommonReadTimeout

tlsLayer 配置也使用Extra,目前用于 shadowTls
2022-12-22 17:06:35 +08:00
e1732a364fed
99f875de06 整理shadowTls代码,为shadowTlsv2做准备 2022-12-22 10:41:13 +08:00