Commit Graph

65 Commits

Author SHA1 Message Date
hahahrfool
a890d39ac7 添加toml标准配置格式支持;重构配置相关的代码;修订文档
添加了path分流部分的go test,简单修订 GetRequestPATH_from_Bytes 函数
2022-03-18 19:09:02 +08:00
hahahrfool
3fdeded6cf 将mycountry的配置同时用于顶级域名的国别分流;修订文档,代码; 2022-03-17 20:32:37 +08:00
hahahrfool
42236d5cd8 添加utls支持,直接用chrome指纹;修订代码 2022-03-17 18:40:54 +08:00
hahahrfool
af8aadb370 配置文件local->listen, remote->dial;localServer->inServer, remoteClient->outClient.
增加了 -L 和 -D 命令行参数。如果没有配置文件存在的话,就会默认查看是否给定了 -L和-D参数.

如果配置文件没给定dial的话,默认就认为是 direct://
2022-03-17 14:10:47 +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
405207bc56 将netLayer抽象出来,proxy.Addr现在变成netLayer.Addr
netLayer里包含关于 网络层 以及传输层 的各种定义.

这里为了添加 类似 v2simple的 common.Matcher的功能,特地抽象出来一个层.

而且增添了第一个外部依赖包,github.com/yl2chen/cidranger包.
2022-03-16 09:01:43 +08:00
hahahrfool
fa1c5db1ef 上一个commit修改了函数签名,不好,太笨,还是不改好
proxy.Server返回的 *bytes.Buffer只被用于Fallback,所以直接放到Fallback里就行
2022-03-16 08:19:09 +08:00
hahahrfool
861d5a74c5 添加fallback功能,修改了proxy.Server接口,修订文档 2022-03-16 04:16:19 +08:00
hahahrfool
43f475eec8 使用uuid作为特殊指令,避免0rtt时的探测攻击;新增Makefile
新增的Makefile可以自动将版本号写入程序中。目前默认编译四种环境下的可执行文件
2022-03-14 11:19:46 +08:00
hahahrfool
e558ba21cf 初步实现 tls lazy encrypt 功能 (splice) 2022-03-11 14:06:55 +08:00
hahahrfool
1dfc31a89d 更新注释 2022-03-10 19:48:17 +08:00
hahahrfool
0c1b106bec 添加注释 2022-03-10 18:07:27 +08:00
hahahrfool
f680b1a6e8 改进注释;给vlessv1的CRUMFURS 增加 udp长度头 2022-03-10 16:28:31 +08:00
hahahrfool
009162cf40 first 2022-03-09 21:27:13 +08:00