Commit Graph

33 Commits

Author SHA1 Message Date
hahahrfool
c5ab5a201c 由新的udp架构重新设计udp分离信道传输方式和vless v1协议并初步实现代码 2022-04-11 18:47:35 +08:00
hahahrfool
1caa5e26c8 修订代码;修复udp direct 时 重复dial的问题 2022-04-11 08:21:32 +08:00
hahahrfool
4b3ebe8a26 修订文档,代码; 交互模式 支持trojan协议以及生成trojan分享链接. 2022-04-10 11:23:04 +08:00
hahahrfool
19eda8e356 修订文档,代码;添加交互模式中生成分享链接功能,添加交互输入字符串的验证 2022-04-06 11:51:14 +08:00
hahahrfool
88f32208c3 修订代码、注释;试图解决所有udp不会关闭退出的问题;UDP_timeout设为3分钟 2022-04-05 16:13:48 +08:00
hahahrfool
8606e6e573 添加-mp参数进行memory pprof. 修订代码 2022-03-31 08:36:59 +08:00
hahahrfool
4ece4b84dd 修订代码 2022-03-30 21:32:35 +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
0ed518c21a 修复分流失效的bug;该bug从1.0.6开始出现;修订代码,示例 2022-03-27 14:52:59 +08:00
hahahrfool
8ace3832d8 禁止传udp时使用splice 2022-03-27 12:31:38 +08:00
hahahrfool
aace001585 全面修订splice和readv的代码,极大提升性能; 添加生成uuid命令 2022-03-27 12:04:12 +08:00
hahahrfool
759d51bf62 minor improve 2022-03-26 20:09:47 +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
3838c251ce 修订代码,文档,注释,示例 2022-03-26 13:27:14 +08:00
hahahrfool
4d2bbaeceb 完善对writev的支持;为vless和ws实现MultiWriter;修订代码 2022-03-22 22:39:26 +08:00
hahahrfool
536a84def6 修订代码,注释,文档 2022-03-22 16:46:05 +08:00
hahahrfool
5661c8737f 添加readv功能;给出测试数据;修订代码,注释;
toml 新增 app.noreadv项,命令行参数新增 -readv

默认readv是打开状态,可以选择性关闭。
2022-03-22 14:12:32 +08:00
hahahrfool
7f01079688 添加多服务器监听支持;给ProxyCommon添加一些打印全称的机制
给ProxyCommon接口添加 MiddleName,IsUDP 方法; 添加 GetFullName 函数

将 proxy.CmdTCP , CmdUDP, CmdMux 这三个常量从proxy移动到 vless

修订示例文件
2022-03-20 22:25:56 +08:00
hahahrfool
edcd39f3e5 添加回落path 功能;
配置格式:

在服务端配置文件,添加下面内容

 "fallbacks":[
    {
      "path":"/asf",
      "dest":6060
    }
  ]
2022-03-18 09:44:37 +08:00
hahahrfool
c9cf683a58 将common包改名为utils, 因为common太长了 2022-03-17 08:11:56 +08:00
hahahrfool
e664b9740e feat:添加回落和分流功能.
创建新子包netLayer, 将 proxy.Addr改为 netLayer.Addr
修订文档

RoutePolicy等分流机制也放到 netLayer

引入github.com/oschwald/maxminddb-golang 依赖,支持使用 GeoLite2-Country.mmdb 来进行ip分流

另外注意它默认的版本对于 golang.org/x/sys 包的依赖太老了,会导致go1.18中编译不通过,我在
go.mod 文件中新增了下面代码,就能通过编译了

```
require (
	golang.org/x/sys v0.0.0-20220315194320-039c03cc5b86 // indirect
)
```

verysimple的可执行文件的相同目录下,必须有该mmdb文件才能够开启ip分流功能

新配置方式:配置文件新加一行 "route":{ "mycountry":"CN" }

mycountry指定的国家的ip会被直连发送,其他地址ip会被发送到代理.

新配置方式,回落,直接在 local 项的 url 的 query部分添加 fallback=:80, 或者 fallback=127.0.0.1:80
即可 回落到指定端口.

将tls_test重新挪动到tlsLayer包中

在main.go中添加了 logLevel变量,并且把关于配置文件的部分挪动到 config.go

出了上面的分流和回落以外,还新增支持了 #xxx 的尾缀,用于配置该url的tag. tag在未来会被用于精准分流

Makefile中新增了 PACK 参数用于编译出 打包版的发行包;可选 tag=embed_geoip 参数用于将mmdb.tgz文件内置到可执行程序里

同时,我开始直接使用go1.18编译本项目,期待性能提升,因为这是新发布的版本,看了介绍据说对 mac m1有20%的提升.
2022-03-16 19:28:26 +08:00
hahahrfool
861d5a74c5 添加fallback功能,修改了proxy.Server接口,修订文档 2022-03-16 04:16:19 +08:00
hahahrfool
f680b1a6e8 改进注释;给vlessv1的CRUMFURS 增加 udp长度头 2022-03-10 16:28:31 +08:00
hahahrfool
d345559631 minor update 2022-03-10 14:49:23 +08:00
hahahrfool
c91742e90e 给 vless v1的udp部分添加 长度头.更新v1标准文档 2022-03-10 14:02:07 +08:00
hahahrfool
c19a0d043d 更新文档,minor improvement 2022-03-10 12:04:41 +08:00
hahahrfool
fd1eb29aa2 改进代码;修复vless v0 的 udp 部分的bug 2022-03-10 11:43:33 +08:00
hahahrfool
abcbfdd539 改进vless v0部分的代码 2022-03-10 11:02:42 +08:00
hahahrfool
cc96b2a170 fix bug, 上一个bug没修复完,这次完全修复了 2022-03-10 10:23:53 +08:00
hahahrfool
8024a3dc29 fix,修复vless v0 忘实现服务端数据头的bug 2022-03-10 10:16:57 +08:00
hahahrfool
395f726cd4 实现vless v0的udp的数据包长度的传输;完善vless_test 2022-03-10 01:31:55 +08:00
hahahrfool
0aad1d5791 fix bug in func common/GetBytes,try improve v0 udp 2022-03-09 22:19:54 +08:00
hahahrfool
009162cf40 first 2022-03-09 21:27:13 +08:00