# WeakNet **Repository Path**: testaivin/WeakNet ## Basic Information - **Project Name**: WeakNet - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-08 - **Last Updated**: 2026-10-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WeakNet **Android 弱网模拟工具** 基于 VpnService 在用户态拦截所有 IP 流量,对数据包进行延迟、丢包、限速、重复、乱序、篡改等操控。 支持网络闪断(周期性短暂断连)和 DNS 故障模拟。无需 root,安装即用。 ![Kotlin](https://img.shields.io/badge/Kotlin-2.0-7F52FF?logo=kotlin) ![Compose](https://img.shields.io/badge/Jetpack_Compose-BOM%202024.09-4285F4?logo=jetpackcompose) ## 为什么需要 WeakNet 移动应用在弱网环境下的表现直接影响用户体验——加载超时、图片模糊、数据丢失、重复请求。开发和测试时需要**可复现的弱网环境**来验证应用的容错能力。 **WeakNet** 通过 Android `VpnService` 在用户态拦截**所有 IP 流量**(TCP/UDP/ICMP),在数据包层面实施操控。 ## 功能 - **全协议覆盖** — TCP、UDP、ICMP(Ping),不限于 HTTP 层 - **12 个预设场景** — 2G/3G/4G 弱信号/WiFi 弱/地铁/电梯/高铁/高延迟/丢包地狱/DNS 超时/数据校验 - **5 种数据包操控** — 节流、乱序、重复、丢包、篡改,管线串联可任意组合 - **3 种延迟分布** — 均匀、高斯(Box-Muller)、长尾(对数正态) - **2 种丢包模型** — 随机(伯努利)、突发(Gilbert 马尔可夫链) - **网络闪断** — 周期性模拟断连/恢复,恢复时自动 RST 清理所有 TCP 会话 - **DNS 故障模拟** — 超时(静默丢弃)/ 失败(SERVFAIL)/ 劫持(伪造 A 记录) - **按应用过滤** — 选择特定 App 生效,不影响其他应用 - **浮窗监控** — 实时显示上传/下载速度、会话数,支持暂停/停止 - **自定义配置** — 所有参数均可自由调节,支持保存为自定义配置 ## 预设场景 | 预设 | 延迟 | 丢包 | 限速 | 特殊 | |:-----|:----:|:----:|:----:|:-----| | 无限制 | — | — | — | — | | 2G (EDGE) | 300ms | 5% | 50kbps | — | | 3G (HSPA) | 100ms | 2% | 750kbps | — | | 4G 弱信号 | 50ms | 1% | 3Mbps | — | | WiFi 弱 | 30ms | — | 5Mbps | 抖动 15ms | | 地铁 | 200ms | 8% | 1Mbps | 闪断 30s/2s | | 电梯 | 500ms | 15% | 100kbps | 闪断 20s/3s | | 高延迟 | 2000ms | — | — | 抖动 500ms | | 丢包地狱 | 100ms | 30% | — | 重发 5% + 乱序 | | 高铁 | 150ms | 5% | 800kbps | 闪断 60s/4s | | DNS 超时 | — | — | — | DNS 查询丢弃 | | 数据校验 | — | — | — | 篡改 10% | ## 架构 详细架构文档:[docs/architecture.md](docs/architecture.md) ## 原理讲解 https://juejin.cn/column/7646043734383509514