Commit Graph

39 Commits

Author SHA1 Message Date
e1732a364fed
7ebf20ac1a 将Synonyms技巧也应用在tls_rejectUnknownSni项上 2022-12-11 01:41:40 +08:00
e1732a364fed
e93e5facf3 实现ReplaceStringsSynonyms函数以及对应[]byte的函数,归纳上一个commit的替换做法 2022-12-11 01:37:33 +08:00
e1732a364fed
fc1f24eb3e 将配置中advancedLayer改为adv;同时使用变通的方法使老配置依然可用
技巧是,在parse toml前,先进行一遍字符串替换
2022-12-11 01:21:08 +08:00
e1732a364fed
7b3705c977 修订文档,代码;将AppConf代码从proxy移动到cmd中 2022-12-02 14:18:34 +08:00
e1732a364fed
a5b9455b88 修订代码,文档;添加url的extra部分的解析 2022-12-02 08:54:42 +08:00
e1732a364fed
9c40033ce7 在golang lint的帮助下全面修订代码 2022-05-07 10:19:59 +08:00
e1732a364fed
5867bac0b2 修订代码,文档,Makefile,示例
修复 没给出 -c参数而给出了 -L 参数时,未能成功运行 的bug
使Makefile 支持 免参数编译 当前系统的 可执行文件。

Makefile的 BUILD_VERSION 这次 添加了 显示 build_on 系统 和 all_go_files_md5 的功能。

md5的打印只支持 linux/darwin,且因为 darwin的命令是 md5 而不是 md5sum,导致输出有差别,所以导致md5总和也有差别.
2022-05-05 14:09:12 +08:00
e1732a364fed
00c25b914f 重命名proxy的一些接口和接口方法 2022-05-05 08:28:23 +08:00
e1732a364fed
9ea5365565 修订代码,文档;为支持监听PROXY protocol 作准备 2022-05-03 19:04:17 +08:00
e1732a364fed
7d780ffcd3 修复交互模式打不开的bug 2022-05-03 07:17:39 +08:00
e1732a364fed
b5bbda0194 修订文档, 代码; 修改回落定义
为了支持 PROXY protocol, 需要添加Xver 数据

但是之前的结构并不包含此结构,所以要添加。

同时,还加一个 from字段用于指示某个fallback限制从某个特定server发出。
2022-05-02 17:15:40 +08:00
e1732a364fed
5bf0c8f3f0 修订文档 2022-05-02 14:31:58 +08:00
e1732a364fed
2e7dda7c18 修订代码,文档;logfile标准配置以及-sp行为改变,见下:
在标准 toml 配置中 配置 logfile 配置文件路径。 如 `logfile = "/var/log/verysimple/vs_log"`

将 -sp 的行为 改为 打印完毕后立即退出。
2022-04-29 21:40:01 +08:00
hahahrfool
2d384314f4 修订,重构代码, 修复dns的bug; 添加Dns的DoT功能.
修复dns配置中"特殊服务器" 无法被正确配置、使用的bug

将 proxy.Standard结构 移动到 项目根目录的 StandardConf.
将 proxy.AppConf, LoadTomlConfStr, LoadTomlConfFile 函数 移动到根目录

因为 StandardConf和 AppConf里包含很多App级别的配置, 不宜放到proxy子包中

将 proxy.RuleConf 移动到 netLayer
将 proxy.LoadRulesForRoutePolicy 移动到 netLayer
将 proxy.LoadDnsMachine 移动到 netLayer

在dnsquery失败后,会判断错误, 若发现是Read错误,则会试图重新拨号
2022-04-07 13:45:24 +08:00
hahahrfool
f6081cc8be 修订代码;添加【下载geosite文件】的交互命令,可自动通过节点下载 2022-04-05 19:08:44 +08:00
hahahrfool
3a997a32bc 修订代码,示例;添加geosite分流,域名现已支持full,sub,regex,geosite,match 2022-04-05 08:59:26 +08:00
hahahrfool
df58f0988d 修订代码,添加-v参数 2022-04-04 15:28:08 +08:00
hahahrfool
b66cf34d02 添加一个命令行参数, 改进route机制;修复空指针bug;详情如下
添加-nd参数,意思是nodownload,不自动下载任何数据文件
route配置项的 dialTag现在可以为一个string也可以为一个 []string,用于负载均衡
2022-04-04 13:08:03 +08:00
hahahrfool
8a1c86b933 添加解析域名策略,0默认4先查ip4,6先查6;40只查ipv4,60只查ipv6 2022-04-03 21:56:01 +08:00
hahahrfool
2b8d966909 修订代码 2022-04-03 17:10:25 +08:00
hahahrfool
8b552b2b4f 修订文档、代码、示例 2022-04-02 21:06:02 +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
dfecd89d14 添加dns功能; 解决grpc 悬垂链接问题;
该悬垂问题可能就是v2ray/xray的 “grpc断流问题”,已被本commit轻松搞定。

dns配置:

[dns]
servers = [
  "udp://114.114.114.114:53"      # 如果把该url指向我们dokodemo监听的端口,就可以达到通过节点请求dns的目的.
]

[dns.hosts]     # 自己定义的dns解析
"www.myfake.com" = "11.22.33.44"
"www.myfake2.com" = "11.222.33.44"

一旦配置了dns项,则所有dns都会试图向默认dns服务器请求;

该功能尚不完善。
2022-04-01 00:26:35 +08:00
hahahrfool
b31557df14 大范围修订代码,以试图防止内存逃逸到堆; 2022-03-31 13:33:58 +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
074908ecdf 增加alpn配置; 修订示例,代码; 2022-03-25 22:55:38 +08:00
hahahrfool
146f7cf926 修复大量与websocket和回落相关的bug;
修复 websocket时无回落的问题
修复 websocket不匹配时直接返回内部错误字符串导致 可探测 的超级bug
修复回落不匹配问题
修复websocket时readv闪退问题

修复 命令行 loglevel参数被配置文件覆盖问题
修复获取tls 的 alpn和 sni时遇到空指针闪退问题

将默认fallback地址的赋值放到通用代码中;
移除 ErrSingleFallback, 改用utils.ErrFirstBuffer
使ws的server可以返回 预设的path
2022-03-24 13:42:34 +08:00
hahahrfool
8c6ed6377d 修订代码;将addr的赋值从各个proxy自己的方法中提出来 2022-03-23 18:54:38 +08:00
hahahrfool
a40a343510 在route中使用netip.Addr;修订代码;添加一些go test 2022-03-23 17:37:23 +08:00
hahahrfool
5661c8737f 添加readv功能;给出测试数据;修订代码,注释;
toml 新增 app.noreadv项,命令行参数新增 -readv

默认readv是打开状态,可以选择性关闭。
2022-03-22 14:12:32 +08:00
hahahrfool
548675e002 添加自定义网络层功能;添加udp网络层支持
配置中,listen和dial中,可添加 network = "udp" 字段,不添加则默认tcp
2022-03-21 21:19:31 +08:00
hahahrfool
89e3c8a4ed 添加导向某tag的dial的分流的支持;修订代码,文档,示例;
目前已经支持 ip,domain,network,country, inTags 这五种配置方式
2022-03-21 00:50:19 +08:00
hahahrfool
de8ecb8410 添加default_uuid配置;允许加载完整路径的其他位置的配置;
修订文档,代码。
2022-03-20 20:42:41 +08:00
hahahrfool
4da0075786 新增App.LogLevel 配置;修复 LogLevel的小bug;修订注释. 2022-03-20 19:36:25 +08:00
hahahrfool
8a9ace5889 将udp相关代码从 proxy包移动至 netLayer包 2022-03-20 18:05:32 +08:00
hahahrfool
b1c4f5a5d1 feat:完整实现websocket.修订文档,注释,代码
添加了 ws.server.toml 和 ws.client.toml 这两个示例文件.
2022-03-20 16:59:58 +08:00
hahahrfool
bfb00c8e85 修订文档、注释,尝试引入 gobwas/ws 2022-03-20 09:15:58 +08:00
hahahrfool
dbe499cc08 添加unique协议, 详情见wiki 2022-03-19 18:39:16 +08:00