jarbozhang/bit-sender
GitHub: jarbozhang/bit-sender
一款基于 Rust + Tauri 的跨平台原生桌面应用,提供图形界面下的网络数据包逐字段构造、发送与捕获功能。
Stars: 2 | Forks: 0
# BitSender
**跨平台网络数据包构造、发送与捕获。单一原生 GUI。**
逐字段构建原始 L2 帧,以链路速率发送,并监听网络回包,一切尽在一个快速的桌面应用中完成。Rust 通过 libpcap/Npcap 构建和发送字节;React 前端绝不对任何字段进行猜测。
[](https://github.com/jarbozhang/bit-sender/actions/workflows/ci.yml)
[](https://github.com/jarbozhang/bit-sender/releases/latest)


[中文文档](./README.zh-CN.md) · [下载](../../releases/latest) · [重构故事](./docs/blog/rewriting-bitsender-with-claude.md)
## 为什么选择 BitSender
大多数数据包工具只让你做一件事。Wireshark 只能捕获但不能构造。Scapy 可以构造但你得写 Python。Colasoft Packet Builder 可以构造但仅限 Windows 且已过时。hping 仅支持 CLI。
BitSender 在所有三大平台上通过 GUI 同时实现这两项功能:
- **逐字段构造任何 L2 帧** — Ethernet II、ARP、IPv4、IPv6、TCP、UDP、ICMP。真实的校验和(IP / TCP-UDP 伪首部 / ICMP,符合 RFC 1071 和 768),或者你可以手动设置以故意伪造格式错误的数据包。
- **实时十六进制示波器** — 每个字节在输入时都会根据协议层着色(Ethernet / IP / 传输层 / payload)。支持导入和导出 Wireshark 风格的十六进制转储。
- **发送单个,或泛洪发送** — 测试发送单个帧,或按照精确的停止条件(数量、持续时间或手动)以设定速率批量发送。
- **带有真实统计数据的嗅探** — 每秒数据包数 (pps) 是根据 pcap header 时间戳计算的最后一个*完整*秒内的统计,而不是一个会漂移的不可靠计数器。(v1 无法正确计算 pps。v2 可以。)
- **序列与响应监控** — 发射有序、定时的数据包序列,或发送 ICMP/ARP 探测并测量 RTT。
- **模板、深色/浅色主题、英文/中文** — 全部持久化保存。
## 安装
从 [Releases](../../releases/latest) 获取构建版本。
**macOS** — 安装后移除隔离标志(构建版本尚未经过公证):
```
xattr -cr /Applications/BitSender.app
```
发送和捕获需要 root 权限:
```
sudo /Applications/BitSender.app/Contents/MacOS/BitSender
```
**Windows** — 首先安装 [Npcap](https://npcap.com/#download)(勾选“WinPcap API compatible mode”)。以管理员身份运行以发送或捕获。
**Linux** — 需要 `libpcap` 和 webkit2gtk 运行时库。使用 `sudo` 运行或授予 `CAP_NET_RAW`。
## 故事:在一个周末内重构,有据可查
v2 是一次完全的从头重写,在一个使用 [Claude Code](https://claude.com/claude-code)(Fable 5 模型)的紧张会议中完成。有趣的部分不在于速度。而在于这*不是*一个随便拼凑的玩具:
- Rust 中强类型的 `PacketSpec` 由 [tauri-specta](https://github.com/specta-rs/tauri-specta) 导出到 TypeScript,因此任何字段或类型不匹配都会在**编译期**失败。v1 的前端↔后端契约是一个全靠运气和静默默认值支撑的 `HashMap
标签:Rust, Tauri, 可视化界面, 数据包构造, 桌面应用, 特征检测, 网络工具, 网络抓包, 网络流量审计, 通知系统