共计 1005 个字符,预计需要花费 3 分钟才能阅读完成。
仓库: 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 作为服务端,这跟某些玩具是有着本质的区别的 (锐评一把
正文完