本文及资源最后更新时间 2022-04-10 by sky995
仓库: https://github.com/zephyrchien/kaminari
基于我亲自实现的ws库,要比其他通用ws库高效得多。其他库都在底层维护了一个fifo缓冲区,并且只能整读整写,使用的时候往往还需要再加一层缓冲。而我的库利用栈上缓冲保存状态(127b以内),直接指示出每次需要读写的数据范围,不需要额外在堆上分配内存。
食用姿势:
代码:
- kaminaric <local_addr> <remote_addr> <options>
- kaminaris <local_addr> <remote_addr> <options>
也可以作为Shadowsocks插件食用:
代码:
- sslocal … –plugin <path/to/kaminaric> –plugin-opts <options>
- ssserver … –plugin <path/to/kaminaris> –plugin-opts <options>
WS转发例子:
代码:
- kaminaric 127.0.0.1:10000 127.0.0.1:20000 ‘ws;host=example.com;path=/ws’
- kaminaris 127.0.0.1:20000 127.0.0.1:30000 ‘ws;host=example.com;path=/ws’
WSS转发例子:
代码:
- kaminaric 127.0.0.1:10000 127.0.0.1:20000 ‘ws;host=example.com;path=/ws;tls;sni=example.com;insecure’
- # use cert + key
- kaminaris 127.0.0.1:20000 127.0.0.1:30000 ‘ws;host=example.com;path=/ws;tls;cert=example.com.crt;key=example.com.key’
- # generate self signed cert/key
- kaminaris 127.0.0.1:20000 127.0.0.1:30000 ‘ws;host=example.com;path=/ws;tls;servername=example.com’
Options具体含义请看文档。
EDIT: PS:
是标准的WS实现喔,可以穿CDN,也可以配合Nginx, Haproxy等中间件食用。不强制你使用kaminaris作为服务端,这跟某些玩具是有着本质的区别的(锐评一把
晚点会把这些功能移植到Realm上,支持多节点转发。