A lightweight proxy client written in C, intends to support multiple protocols(trojan etc.)
是一个基于 socks5 协议的代理客户端,意图在于支持多种类型的代理服务。 C 语言编写,轻量,支持类 unix 系统。
特点
与其他大多数支持多协议的客户端不同,pegasocks 不依赖各种第三方 core(比如 v2ray-core 等),而是真的去实现相关协议的拆装,并且尽可能的照顾性能。因此它
🍃 足够轻量,没有 QT 或是 boost 或是其他第三方二进制的依赖。🚀 性能优先,默认多个 worker 线程,因此理论上吞吐量会比较高(待benchmark)🚥 这是一个 learn by doing 项目,欢迎大家 review 代码,提供优化思路和 C 语言编程相关的指导。❌ 没有 GUI,可以直接配合 systemd, launchd, rc 或是各种自定义脚本配置开机启动。后期计划开发一个简单的 tray indicator,在系统的托盘里显示,并且提供一些简单的交互,总之重型的 GUI 是不在考虑范围内的。
依赖
- openssl 1.1.1
- libevent2
- json-c
编译
mkdir build && cd build
cmake .. && make
运行
pegas -c config.json -t 4
-c指定配置文件,默认会依次尝试$XDG_CONFIG_HOME/.pegasrc或者$XDG_CONFIG_HOME/pegas/config-t指定工作线程数量,默认为 CPU 核心数量
系统托盘
默认编译二进制文件不带 GUI,带上参数 -DWITH_APPLET=1 开启系统托盘功能。
cmake -DCMAKE_BUILD_TYPE=Release -DWITH_APPLET=1 .. && make
Linux
运行时,将 icon.svg 放到 pegas 同级目录,然后正常使用即可。
OSX
运行时,将 icon.png 放到 pegas 同级目录,然后正常使用即可。
构建流程
在 OSX 平台有打包成 app bundle 的脚本,在 build 完成后,确认有 build/pegas 文件,然后运行 ./bundle.sh,build 目录下会出现 pegas.app。 然后在用户目录下创建 ~/.pegasrc,写入 json 格式的配置文件。 最后双击 pegas.app 即可。
更多参数修改可以手动修改 bundle.sh 作出适合自己的调整。
如果遇到无法启动的状况,请确认系统安装了 libevent 和 json-c (brew install libevent json-c)
PS: 目前只在 linux/osx 平台做了适配,其他平台可能暂时编译不过。
配置
见配置文档
开发计划
- 多种协议支持
- trojan
- trojan-gfw
- trojan-go
- v2ray
- vmess
- tcp
- websocket
- tls + websocket
- trojan
- 平台适配
- linux
- osx


No comments:
Post a Comment