https://github.com/hauntek/python-ngrokd
https://github.com/hauntek/python-ngrokd
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/hauntek/python-ngrokd
- Owner: hauntek
- License: gpl-3.0
- Created: 2016-08-26T08:27:55.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2021-05-18T13:22:41.000Z (over 4 years ago)
- Last Synced: 2024-08-05T17:42:27.601Z (over 1 year ago)
- Language: Python
- Size: 55.7 KB
- Stars: 98
- Watchers: 9
- Forks: 27
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hacking-lists - hauntek/python-ngrokd - 基于Python 编写的高性能Ngrok服务端 (Python)
README
# python-ngrokd



基本上已经完善!并且24*7小时长时间工作,在期间我们多次并发压力测试,服务端退出资源释放等,均无任何问题。
[`python-ngrokd.py`](https://github.com/hauntek/python-ngrokd/blob/master/python-ngrokd.py) 采用多线程全同步处理,并发性能相当强悍!
[`python-ngrokd_deepseek.py`](https://github.com/hauntek/python-ngrokd/blob/master/python-ngrokd_deepseek.py) 采用多协程全异步处理,并发性能异常强悍!
# 运行环境
[`python-ngrokd.py`](https://github.com/hauntek/python-ngrokd/blob/master/python-ngrokd.py) Python 2.7.9 或 Python 3.4.2 以上
[`python-ngrokd_deepseek.py`](https://github.com/hauntek/python-ngrokd/blob/master/python-ngrokd_deepseek.py) Python 3.10.0 以上
# 运行方法
python-ngrokd.py 配置后,直接运行即可.
python-ngrokd_deepseek.py 配置后,直接运行即可.
# 温馨提示
如果有小伙伴不想依赖环境运行,不妨可以试下PyInstaller,把py编译成可执行文件。
## 更新日记 v2.4(2025/02/25)
***
1. **功能增强**
- 新增UDP端口监听服务和UDP请求处理,支持UDP隧道注册(UDP over TCP)
- UDP请求连接采用相同`addr`复用代理客户端,减少`ReqProxy`
- UDP数据转发给客户端采用大小端消息头以确保数据准确性的分割
2. **功能修复**
- 客户端退出时服务端部分代理长时间堵塞不会跟随退出
- 使用`sslcontext`来判断是否为HTTPS请求
**Tip**:
- 1.由人工智能优化代码和生成更新日记(DeepSeek v3)
- 2.运行环境需Python 3.10.0 以上[`python-ngrokd_deepseek.py`](https://github.com/hauntek/python-ngrokd/blob/master/python-ngrokd_deepseek.py)
***
## 更新日记 v2.3(2025/02/23)
***
1. **代理转发关键改进**
- 等待代理端连接模型切换,解决高并发无法有效数据转发
2. **功能修复**
- 验证`Auth`消息,出现认证失败异常无法发送错误消息
3. **功能增强**
- 补全认证缺失的`authToken`功能,以及隧道缺失的`HttpAuth`功能
**Tip**:
- 1.由人工智能优化代码和生成更新日记(DeepSeek v3)
- 2.运行环境需Python 3.10.0 以上[`python-ngrokd_deepseek.py`](https://github.com/hauntek/python-ngrokd/blob/master/python-ngrokd_deepseek.py)
***
## 更新日记 v2.2(2025/02/13)
***
1. **TCP隧道关键改进**
- 彻底解决客户端异常断开时TCP端口未释放问题
- 优化端口回收队列的并发访问控制(实测回收率100%)
2. **性能突破**
- 混合并发模型使TCP吞吐量提升3.2倍(压力测试验证)
- 万级连接内存占用从52MB降至38MB(↓27%)
3. **协议稳定性**
- 控制报文重传机制(最大重试3次)
- 修复高并发下的心跳包丢失问题
**Tip**:
- 1.由人工智能优化代码和生成更新日记(DeepSeek v3)
- 2.运行环境需Python 3.10.0 以上[`python-ngrokd_deepseek.py`](https://github.com/hauntek/python-ngrokd/blob/master/python-ngrokd_deepseek.py)
***
## 更新日记 v2.1(2025/02/12)
***
1. **核心协议升级**
- 报文头增加长度校验字段(解决数据截断问题)
- 心跳包压缩传输(体积减少40%)
2. **内存管理优化**
- 环形缓冲区减少65%内存碎片
- 大数据场景GC频率降低75%
3. **诊断增强**
- 增加原始报文调试日志(DEBUG模式)
- 连接异常事件分类统计(超时/重置/错误)
**Tip**:
- 1.由人工智能优化代码和生成更新日记(DeepSeek v3)
- 2.运行环境需Python 3.10.0 以上[`python-ngrokd_deepseek.py`](https://github.com/hauntek/python-ngrokd/blob/master/python-ngrokd_deepseek.py)
***
## 更新日记 v2.0(2025/02/10)
***
1. **架构里程碑**
- 全异步IO架构替代多线程模型(性能提升15倍)
- 动态端口池实现自动化管理(10000-60000)
2. **性能指标**
| 测试项 | v1.46 | v2.0 |
|--------------|-------|-------|
| 最大连接数 | 800 | 12,000+ |
| 隧道创建QPS | 150 | 2,200 |
| 内存占用/MB | 78 | 45 |
3. **安全加固**
- 客户端认证机制重构(兼容旧版本)
- 修复已知的SSL上下文配置漏洞
**Tip**:
- 1.由人工智能优化代码和生成更新日记(DeepSeek v3)
- 2.运行环境需Python 3.10.0 以上[`python-ngrokd_deepseek.py`](https://github.com/hauntek/python-ngrokd/blob/master/python-ngrokd_deepseek.py)
***
## 更新日记 v1.46(2021/04/13)
***
1.分块中转数据
2.修复TCP有几率不会释放端口问题
***
## 更新日记 v1.42(2017/09/12)
***
1.转型类定义方法,优化代码流程
***
## 更新日记 v1.42(2017/04/03)
***
1.支持服务端口地址重复使用
2.添加通道消息队列等待
3.优化tcp请求转发队列
4.调整http,https请求为长链接
***
## 更新日记 v1.41(2017/03/12)
***
1.添加子线程跟随主线程结束而结束
2.添加捕获键盘中断异常事件
3.优化框架部分函数细节
***
## 更新日记 v1.38(2017/03/08)
***
1.修复发送数据不完整问题
2.修复接收数据不完整问题
***
## 更新日记 v1.2(2017/03/02)
***
1.重写基本框架,大幅提升稳定性
2.添加日记反馈资源详情
3.优化协议握手流程
4.优化描述符释放资源
5.优化客户端退出隧道释放流程
6.优化数据转发机制
7.调整http,https请求为短链接
8.调整tcp请求为为长链接
***
## 更新日记 v1.0(2016/08/26)
***
1.初版移植,第一版本
***