72 Commits

Author SHA1 Message Date
e1732a364fed
2e7dda7c18 修订代码,文档;logfile标准配置以及-sp行为改变,见下:
在标准 toml 配置中 配置 logfile 配置文件路径。 如 `logfile = "/var/log/verysimple/vs_log"`

将 -sp 的行为 改为 打印完毕后立即退出。
2022-04-29 21:40:01 +08:00
e1732a364fed
1bac60b50f 修订代码,文档 2022-04-29 18:23:50 +08:00
e1732a364fed
2ea170e365 修订advLayer代码,添加公共接口 2022-04-27 11:04:55 +08:00
e1732a364fed
f28f0d0bee 修订代码, 默认loglevel 改为 Log_info.
对一般用户而言,还是需要使用Info等级 来了解一下 一般的 日志情况,等到使用熟练之后,且确认运行没有错误后, 可以自行调为 warning 来提升性能

发现 bubble包 还自己引入了 命令行参数,这十分不可取,所以我们还是直接使用其代码。

将其它包中 的 命令行参数 统一 移动 到 cmd/verysimple 中;tls lazy 特性因为还在 调试阶段,所以 命令行参数 仍然放到 v2ray_simple 包中。
2022-04-26 13:22:18 +08:00
e1732a364fed
8725dc513a 修订文档 2022-04-25 21:42:24 +08:00
hahafool
27872e7dfc rename 2022-04-25 18:33:24 +08:00
hahafool
fb1e639c55 添加 grpc multiMode, 应该与xray兼容 2022-04-24 20:04:10 +08:00
hahafool
e44e885282 更新文档,代码;
非 *nix 平台不再使用 bubble包, 减小大小
2022-04-22 20:11:02 +08:00
hahafool
a1a15770d2 修订代码, 文档.
令tls随机证书的国别和组织等信息随机化,在证书文件不存在时不退出程序, 而是使用随机证书继续运行。
不再提供 现成的 证书。
2022-04-22 12:40:23 +08:00
hahafool
e7ae557b91 修订文档, sockopt 和 utils包的代码. 2022-04-21 21:34:56 +08:00
hahafool
98d9169a9d 试图按不同时区进行不同的go test 2022-04-21 11:14:18 +08:00
hahafool
9a1afe18c9 修订netLayer和proxy包的代码; 添加日志文件功能;试图添加tproxy功能 2022-04-20 09:18:49 +08:00
hahafool
64acfbccc3 修订代码,文档,Makefile; 适配quic到0.27;修缮ErrInErr输出 2022-04-19 08:29:46 +08:00
hahafool
6ecbfe7b18 修订文档;添加http伪装头;修复一个path的bug
http头配置同时 支持ws。添加相关的示例文件.

修复 path 为 "/" 时无法连接的bug, 这是因为原代码在 requestfilter.go中, bs[5] == ' ' 这个判断没有过滤 Get / http1.1 等类似的情况

将 filter.go 重命名为 requestfilter.go ,因为现在也产生了过滤response的可能性。
2022-04-18 21:59:46 +08:00
hahahrfool
6dc171e74a 修订文档,示例,添加 heap 泛型代码. 2022-04-15 23:51:46 +08:00
hahahrfool
49a269c0cd 修订文档,代码 2022-04-15 16:37:25 +08:00
hahahrfool
96d98fd65a 修订代码,文档,注释;试图实现内层smux;dial配置添加use_mux选项
为了实现内层mux,对 main.go 里的函数做了一些重构,

现在 handshakeInserver_and_passToOutClient 会调用 handshakeInserver 函数 和 passToOutClient 函数

且 fallback部分的代码提出来 放到了 checkfallback 函数中

内层mux还未经过测试
2022-04-14 20:46:14 +08:00
hahahrfool
c5ab5a201c 由新的udp架构重新设计udp分离信道传输方式和vless v1协议并初步实现代码 2022-04-11 18:47:35 +08:00
hahahrfool
a418808b81 修订代码 2022-04-10 22:28:06 +08:00
hahahrfool
82fd7bdc2f 修订注释、Makefile 2022-04-10 10:42:36 +08:00
hahahrfool
55abc3ec35 修订代码; 添加advLayer支持所有协议的 打印功能 2022-04-10 09:44:38 +08:00
hahahrfool
50de20ce12 修订代码 2022-04-10 08:52:40 +08:00
hahahrfool
651bd12e72 修订代码;重命名netLayer一些结构和接口
Uni_UDPConn 重新改名为 UDPConn, 添加方法以让其实现 MsgConn 接口

MsgConn接口名称改变,
ReadFrom 改为 ReadMsgFrom, WriteTo 改为 WriteMsgTo
2022-04-09 14:18:54 +08:00
hahahrfool
3dc53554df 修订代码, 实现trojan协议 2022-04-08 22:44:01 +08:00
hahahrfool
ce735dbb99 修订udp代码; dial配置 添加 fullcone 选项;默认为非fullcone
现在整个程序均通过了go test, main 也可以正常运行了。

Relay_UDP 函数添加流量计数;

发现之前 Relay函数的流量计数 在main.go里参数传反了,导致实际上计数的是上传而不是下载,已修复

对fullcone的情况做了特别考量。MsgConn的 Close函数在fullcone时不能随便被调用。

因此我添加了一个 CloseConnWithRaddr(raddr Addr) error  方法,以及 Fullcone() bool     方法

在utils包的init部分使用 rand 随机种子
2022-04-08 20:31:59 +08:00
hahahrfool
447bd8749a 重构所有udp部分的代码! 摒弃了过去非常复杂的upd转发机制;
不再使用 UDP_Putter 等机制去转发udp,而是用一个 netLayer.MsgConn 结构

proxy.Server 和 proxy.Client 接口改动,

Client在握手udp时不再使用handshake方法, 而是用新的 EstablishUDPChannel 方法

Server 在 Handshake时会选择性返回两种接口,io.ReadWriteCloser 用于tcp, netLayer.MsgConn 用于 udp

此时vless、socks5、direct 的udp转发都已经成功经过了 go test 验证, 但是 main.go 还未修改。
2022-04-08 13:49:56 +08:00
hahahrfool
dc16dba65d 修订文档; 将大部分Fatal的代码改为Error. 2022-04-07 18:18:14 +08:00
hahahrfool
8bfe56bb24 修复热加载配置文件bug; 添加交互模式中 调节日志等级 选项 2022-04-06 18:18:44 +08:00
hahahrfool
0f4acfb168 修订代码、配置、示例 2022-04-06 14:00:23 +08:00
hahahrfool
2c063750cb 添加交互模式中 热删除配置 的功能 2022-04-06 13:17:54 +08:00
hahahrfool
19eda8e356 修订文档,代码;添加交互模式中生成分享链接功能,添加交互输入字符串的验证 2022-04-06 11:51:14 +08:00
hahahrfool
d172e09111 完整实现交互生成配置文件功能! 2022-04-05 23:54:21 +08:00
hahahrfool
3a997a32bc 修订代码,示例;添加geosite分流,域名现已支持full,sub,regex,geosite,match 2022-04-05 08:59:26 +08:00
hahahrfool
59b9c0cb47 修订代码, 增加geosite源文件的读取和匹配的相关函数 2022-04-05 06:56:41 +08:00
hahahrfool
765f0bb113 修订代码;将默认loglevel改为warn;提前判断本机是否具有ipv6; 2022-04-02 20:36:15 +08:00
hahahrfool
a8654e198e 试图修复udp close无效的问题,可能导致 too many opened sockets. 2022-04-02 09:24:15 +08:00
hahahrfool
8ad0905ce9 feat:apiServer;修复生成的证书无法使用的问题;修复小bug
添加如下命令行参数

-i interactive mode (只是加了一个参数, 还未实现交互功能)
-ea enable api server
-spp api Server Path Prefix, must start with '/',默认值 /api

只有 -ea命令行参数给出后,才会运行api服务器

默认allstate 的api的url 为  https://127.0.0.1:48345/api/allstate

用到basic auth,用户名为admin
密码的toml配置是

[app]
admin_pass = "adfadfadfadfa"

修订 api草案
2022-04-01 17:52:18 +08:00
hahahrfool
e732ea3c3b 修订代码;修复loglevel为debug时失效问题;dns请求加锁,已经可用 2022-04-01 12:31:47 +08:00
hahahrfool
0dae5ca236 修订代码文档,完善zap 2022-03-31 19:03:58 +08:00
hahahrfool
b97e990b44 尝试引入zap包作为log包 2022-03-31 18:28:57 +08:00
hahahrfool
b31557df14 大范围修订代码,以试图防止内存逃逸到堆; 2022-03-31 13:33:58 +08:00
hahahrfool
2f53ffe591 移除-bl参数。buf尺寸过小的话,反倒会导致更大的内存泄漏问题 2022-03-31 09:59:48 +08:00
hahahrfool
f8ef685bdd 解决readv内存泄漏问题;解决转发时断连后的悬垂链接问题
在四点链接的情况下,我们只终端中间两点是不够的,要切三刀;
总之实践很简单,就是copy完成之后,要Close所有的链接

readv的话,系统readv数组和buffer不要在put进pool后相互引用

添加-bl 选项,可以自定义buf大小;注意越小可能越慢,建议buf大小保持在4k以上

添加-pp选项,可以生成cpu.pprof文件

修复其它小问题.
2022-03-31 01:32:58 +08:00
hahahrfool
4ece4b84dd 修订代码 2022-03-30 21:32:35 +08:00
hahahrfool
01d681f14f 修订代码,注释,示例 2022-03-29 21:58:23 +08:00
hahahrfool
f2adcdcd45 防止udp转发时被裸奔;修缮socks udp associate
修订代码,文档,示例

添加 NumErr 结构; 从 handshakeInserver_and_passToOutClient 函数 分离出一个 dialClient 函数。

在socks5包中添加 client.go 文件,以及三个udp相关的客户端请求udp函数

之前的udp associate代码被证明是有很多bug的,现在被我一一修复,并通过了 udp_test.go的测试。
2022-03-29 19:00:14 +08:00
hahahrfool
aace001585 全面修订splice和readv的代码,极大提升性能; 添加生成uuid命令 2022-03-27 12:04:12 +08:00
hahahrfool
b46ee2a7ee 改进readv代码, 将readv的buf长度与MTU脱钩.
netLayer/readv.go中 目前有两个可变的变量,目前暂时调为下面的值:
const readv_buffer_allocLen = 8
const ReadvSingleBufLen = 4096

实际上这个不方便大家手动调节的,因为如果大家遇到readv减速了的情况的话,直接关闭readv即可.
2022-03-26 19:39:36 +08:00
hahahrfool
1070942f4f 修复ws+vless裸奔时,开启readv时的闪退问题 2022-03-26 18:18:08 +08:00
hahahrfool
63682dfae4 完整实现grpc;修订代码, 注释;修复udp的bug和windows中路径bug; 2022-03-25 20:34:54 +08:00