Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lqqyt2423/proxy_request
https://github.com/lqqyt2423/proxy_request
Last synced: 2 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/lqqyt2423/proxy_request
- Owner: lqqyt2423
- Created: 2018-06-17T12:05:15.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-11-09T23:29:28.000Z (about 2 years ago)
- Last Synced: 2024-12-06T06:03:33.250Z (21 days ago)
- Language: TypeScript
- Size: 300 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Fwproxy
HTTP/HTTPS 代理服务,监测、篡改请求。
## 特点/关键词
- Node.js
- 性能高
- 中间人攻击## 安装
暂未发布
```sh
npm i fwproxy -g
```## 使用
参考 `src/bin/fwproxy.ts`
## 通过 curl 测试
启动此服务后,运行:
```sh
export http_proxy=http://127.0.0.1:7888
export https_proxy=http://127.0.0.1:7888
curl http://www.baidu.com/
curl https://www.baidu.com/
```## TODO
- [x] 命令行生成根证书
- [x] to typescript
- [x] request handler 优化
- [x] 解决报错和性能的问题
- [x] 优化 Logger
- [x] 进程内通信,非 TCP 或 IPC
- [x] 测试
- [x] 暴露 api
- [ ] 解析头部 content-encoding
- [ ] content-length, Transfer-Encoding: chunked 等常见错误预防
- [ ] Agent
- [ ] README
- [ ] 兼容 anyproxy api
- [ ] HTTP2
- [ ] 生成证书格式跟 mitmproxy 一样
- [ ] bench
- [ ] web
- [ ] electron## 和 anyproxy 对比
性能提升是毋庸置疑的,为什么呢?
anyproxy 代理 https 请求时,会为每个不同的域名创建一个单独的 https server 用于中间人攻击。一般情况下,当代理服务器运行时,肯定会创建很多 https server,中间带来的性能损失和资源占用肯定是不断扩大的,且这些资源(占用的端口、内存)并不能得到释放,将一直存在于进程中,直至进程退出或重启。
此 fwproxy 呢?
仅会在一开始创建一个 https server 用于中间人攻击,通过`服务器名称指示(server name indication, SNI)`技术。资源占用少。当新的域名请求过来时,并不需要新启动 https server,性能肯定会有所提升。
且此服务器并不会通过跨进程的 tcp 或 ipc 等方式沟通,而是在进程内部模拟发出请求,所有数据都是在同一进程内,所以性能肯定是有所提升的。