iakshkhurana/outbounds

GitHub: iakshkhurana/outbounds

一个本地出站网络可见性工具,通过捕获连接元数据让用户查看设备与外部目的地的通信情况、DNS故障及延迟问题。

Stars: 0 | Forks: 0

# 出站流量 **查看你的设备究竟在与谁进行通信。** 针对出站目的地、DNS 故障、延迟问题以及意外连接的本地网络可见性。 **仅限元数据** — 不进行 TLS 解密。 ## 架构 ``` sniffer ──events──► api (:4000) ──REST──► web (:3000) ▲ sample-data (replay) ``` | 服务 | 角色 | |---|---| | `web/` | Next.js 产品 UI | | `services/api/` | 接收、风险、查询、演示重放、报告 | | `services/sniffer/` | 试运行或实时 (Scapy) 捕获 worker | ``` flowchart LR sniffer[sniffer] -->|JSON events| api[api :4000] sample[sample-data] -->|replay| api api -->|REST| web[web :3000] ``` ## 快速演示 ``` # 终端 1 cd services/api && cp .env.example .env && npm install && npx prisma db push && npm run dev # 终端 2 cd web && cp .env.example .env.local && npm install && npm run dev ``` 打开 http://localhost:3000 → **重放示例** (Replay sample)。 或者: ``` docker compose up --build ``` ## 运行详情 ### API (`:4000`) ``` cd services/api cp .env.example .env npm install npx prisma generate npx prisma db push npm run dev ``` ``` curl -X POST http://localhost:4000/api/demo/replay -H "content-type: application/json" -d "{}" ``` ### Web (`:3000`) ``` cd web cp .env.example .env.local npm install # or pnpm install npm run dev ``` ### Sniffer — 实时 Chrome(在宿主机上运行) PowerShell: ``` cd services/sniffer python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt copy .env.example .env python main.py ``` 默认 `MODE=connections` = 真实的 OS sockets(你的 Chrome 流量)。不要为此使用 Docker sniffer。如果你只想要实时数据,请跳过“重放示例”。 **Windows 注意事项:** 不要在 `:4000` 上同时为 API 运行 `npm run dev` 和 `docker compose` API。两个监听器会分流流量——当 sniffer 看起来仍然正常时,UI 却显示离线 / 0 个事件。建议使用 Docker API + 宿主机 sniffer,并在 sniffer/web 环境中使用 `http://127.0.0.1:4000`(而不是 `localhost`)。 请参阅 [`services/sniffer/README.md`](services/sniffer/README.md)。 ### Docker Compose ``` # 仅 Web + API — 然后在另一个终端运行 host sniffer docker compose up --build docker compose --profile sniffer up --build # optional; cannot see host Chrome ``` ### 冒烟测试(API 必须正在运行) ``` .\scripts\smoke.ps1 ``` ``` chmod +x scripts/smoke.sh && ./scripts/smoke.sh ``` ## 截图 将 PNG 添加到 [`docs/screenshots/`](docs/screenshots/) 目录下(`overview.png`、`host-detail.png`、`report.png`),然后取消注释: ``` ``` ## 文档 | 文档 | 用途 | |---|---| | [overview.md](docs/overview.md) | 产品摘要 | | [prd.md](docs/prd.md) | 需求 | | [architecture.md](docs/architecture.md) | 系统设计 | | [data-model.md](docs/data-model.md) | Schema 与风险规则 | | [api.md](docs/api.md) | HTTP API | | [stack.md](docs/stack.md) | 技术选择 | | [conventions.md](docs/conventions.md) | 工程规范 | | [decisions.md](docs/decisions.md) | 设计决策 | | [testing.md](docs/testing.md) | 测试策略 | | [todo.md](docs/todo.md) | 构建顺序 | ## 限制 - 不是防火墙、IDS 或 MITM 代理 - 进程归因为尽力而为(best-effort) - Windows 实时捕获可能需要 Npcap 和提权 - v1 版本中为单机 SQLite ## 许可证 **保留所有权利** — 仅用于作品集/求职展示。 请参阅 [`LICENSE`](LICENSE)。允许查看和本地评估;但不允许将此作品作为你自己的作品进行复制或重用。
标签:MITM代理, Scapy, 自动化攻击, 请求拦截, 运维监控, 逆向工具