XiaoHan Penetration

August 28, 2026 · View on GitHub

XiaoHan Penetration

自研内网穿透系统 · TCP / HTTP / HTTPS 隧道

自定义文本协议,无需公网 IP 即可将本地服务暴露至外网。

Python Android License


项目简介

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 的机器,并放通控制端口与各隧道端口
  • 公网部署请自行配置防火墙与访问控制
  • 本工具仅供学习与技术研究,请遵守相关法律法规

License

MIT