Commit Graph

880 Commits

Author SHA1 Message Date
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
e1732a364fed
7959950cd1 feat: 初步支持shadowTls v1 2022-12-22 10:32:12 +08:00
e1732a364fed
6cdbf89220 修订tls配置格式,代码,移除utls项,添加 tls_type项。为shadowTls做准备 2022-12-21 23:31:13 +08:00
e1732a364fed
12f7dd1bc6 移除 ClientCreator.UseUDPAsMsgConn 方法 2022-12-21 14:08:31 +08:00
e1732a364fed
c8ce5046db 修复shadowsocks的udp传输错误问题, fix #201
该问题来自vs的一个超陈旧的 udp bug,应该是自从实现了dns功能之后就存在了

当时写错了,把拷贝buf的方向写反了,而且错误地返回了EOF

同时realTargetAddr的network从dual写为udp的位置也需要提前

而且ss实际上不需要也不可能自己处理拨号。

我真是太笨拙了, 犯下这么多错。
2022-12-21 14:01:09 +08:00
e1732a364fed
d4a3a29364 feat: dns的监听功能, 配置添加 dns.listen 项 2022-12-21 11:17:12 +08:00
e1732a364fed
0657a95da3 使用buf而不是临时文件来缓存合并的配置文件;修订代码 2022-12-21 09:53:03 +08:00
e1732a364fed
3f8df146a3 添加传入多个配置文件的支持;修订代码
多个配置文件就使用多个 -c 参数,如 -c c1.toml -c c2.toml
vs会尝试直接将多个文件拼接在一起后 作为一个整体解读
2022-12-21 09:24:09 +08:00
e1732a364fed
9af342ea9a miekg/dns -> v1.1.50;修订文档;添加-llf参数单独配置日志文件的日志等级
现状控制台的日志等级和日志文件的日志等级可以不同
2022-12-21 08:59:26 +08:00
e1732a364fed
f7edbfd267 修订tun示例 v1.2.5-beta.1 2022-12-20 21:14:59 +08:00
e1732a364fed
e9128e7fdf 增加 extra.tun_dns配置,若未给出,默认为8.8.8.8 2022-12-20 20:29:44 +08:00
e1732a364fed
822705e37b tun的自动路由在win上添加一条设置dns的命令
如果不设置wintun的dns,会默认走默认路由的dns,会导致收到外部的dns污染
2022-12-20 18:34:54 +08:00
e1732a364fed
eed0784f3e 修订代码;令tun在darwin不给出名称时使用系统指派的名称 2022-12-20 17:25:02 +08:00
e1732a364fed
64aaa6823e 修订代码 2022-12-20 16:26:46 +08:00
e1732a364fed
07b0a53a12 添加 -cvqxtvs 和 -eqxrs 命令,
分别意思是 convert QX to verysimple 和 extract QX remote servers

将圈叉的配置文件转换为verysimple格式,这样就可以更快地使用自己的vs客户端
2022-12-20 16:08:55 +08:00
e1732a364fed
12fcad3c22 修订netLayer和gui代码 2022-12-20 15:10:54 +08:00
e1732a364fed
9d24ba5b7d 修订代码 2022-12-20 11:52:02 +08:00
e1732a364fed
af9917a657 根据 xjasonlyu/tun2socks提供的路由示例修复darwin的tun的自动路由
https://github.com/xjasonlyu/tun2socks/wiki/Examples

我自己写的路由果然太差,还是人家提供的好用
2022-12-20 11:16:49 +08:00