XiaoHan Penetration
August 28, 2026 · View on GitHub
项目简介
XiaoHan Penetration 是一套完整的内网穿透解决方案,由客户端与服务端组成。客户端负责隧道配置与流量中转,服务端负责端口监听、流量分发与用户管理,两者通过自定义文本协议经 TCP 长连接通信。
支持 TCP 端口映射、HTTP 反向代理与 HTTPS 虚拟主机三类隧道。
功能特性
- 三类隧道:TCP 端口映射、HTTP 反向代理、HTTPS 虚拟主机
- 隧道管理:增删改查、启停、排序、备注,配置本地持久化
- 账号体系:邮箱注册、验证码校验、密码找回
- 连接保活:心跳检测、断线自动重连、开机自启
- 多端客户端:Android(悬浮窗 / 二维码 / 快捷方式)与 Windows(tkinter)
- 管理后台:Web 控制台,支持隧道封禁、流量统计、一键关停
- 双模部署:服务端支持 GUI 与 Linux 无头两种模式
架构
客户端 (Android / Windows) ◄══ 自定义文本协议 ══► 服务端 (Python)
- 客户端维护隧道配置,建立控制连接并注册隧道
- 外网请求到达服务端监听端口后,服务端经控制连接通知客户端
- 客户端连接本地服务,完成流量双向中转
目录结构
XiaoHanPenetration/
├── android/ # Android 客户端
├── client/ # Windows 客户端 (tkinter)
├── server/ # 服务端
│ ├── common.py # 配置、日志、认证、数据库
│ ├── engine.py # 转发引擎与协议处理
│ ├── gui.py # tkinter 管理面板
│ ├── main.py # 入口
│ └── server_Linux.py # Linux 无头部署
├── README.md
└── LICENSE
快速开始
服务端
cd server
pip install -r requirements.txt
python main.py
默认控制端口 7000,管理后台端口 7080。
Windows 客户端
cd client
python client_gui.py
Android 客户端
cd android
./gradlew assembleDebug
APK 输出至 android/app/build/outputs/apk/debug/。
通信协议
纯文本协议,按行解析,以 \n 分隔。
鉴权
IDENT|token 令牌校验
LOGIN|email|token 邮箱登录
REGISTER|email|code|user|pass 注册
VERIFY_SEND|email 发送验证码
RESET_APPLY|email|code|newpass 重置密码
隧道管理
proto|outer_key|local_ip|local_port 注册隧道
REMOVE_TUNNEL|proto|outer_key 移除隧道
数据转发
NEW_TRAFFIC|sid|tcp|port 新建 TCP 会话
NEW_HTTP|sid|port|b64req 新建 HTTP 请求
HTTP_RESP|sid|b64data HTTP 响应
BIND_TRAFFIC|sid 绑定数据通道
注意事项
- 服务端需部署在有公网 IP 的机器,并放通控制端口与各隧道端口
- 公网部署请自行配置防火墙与访问控制
- 本工具仅供学习与技术研究,请遵守相关法律法规