Ahlyx/Ahlyx-Labs
GitHub: Ahlyx/Ahlyx-Labs
整合多源威胁情报查询、TCP端口扫描和系统监控的统一安全工具平台,提供在线API和自托管能力。
Stars: 0 | Forks: 0
# Ahlyx Labs
**线上地址:** [ahlyxlabs.com](https://ahlyxlabs.com) · **API:** [api.ahlyxlabs.com](https://api.ahlyxlabs.com)
## 概述
Ahlyx Labs 将三个安全工具整合到一个 monorepo 中:一个多源 **Security Enrichment API**、一个具备 OT/ICS 端口感知能力的 TCP **Network Scanner**,以及一个实时 **Hardware Dashboard**。[Render](https://render.com) 上的单个 Go 二进制文件处理所有后端路由;Vercel 部署作为静态文件在 `ahlyxlabs.com` 域名下提供所有前端服务。
## 工具
### Security Enrichment API
聚合来自多个来源针对 IP、域名、URL 和文件哈希的威胁情报。每个查询并发地访问所有相关源,合并结果,并使用在部分失败时优雅降级的 TTL 缓存响应。
| Endpoint | Description |
|---|---|
| `GET /api/v1/ip/{address}` | IP 地理位置、滥用评分、VirusTotal、bogon/Tor 检测 |
| `GET /api/v1/domain/{name}` | WHOIS、DNS 记录、SSL、VirusTotal、OTX |
| `GET /api/v1/url?url=` | Google Safe Browsing、URLScan、VirusTotal |
| `GET /api/v1/hash/{hash}` | VirusTotal、MalwareBazaar、CIRCL HashLookup |
**情报来源:** AbuseIPDB · VirusTotal · IPinfo · AlienVault OTX · Google Safe Browsing · URLScan · MalwareBazaar · CIRCL HashLookup · WHOIS · DNS · SSL
### Network Scanner
TCP 端口扫描器,包含精选的 OT/ICS 端口映射以及通用服务端口。接受子网或单个主机作为输入。最大子网大小为 /24。
| Endpoint | Description |
|---|---|
| `GET /api/v1/scanner/scan?subnet=` | 扫描子网或主机的开放 TCP 端口 |
### Hardware Dashboard
运行后端的主机(Render VM)的实时系统遥测数据。
| Endpoint | Description |
|---|---|
| `GET /api/v1/hardware/system` | 操作系统、主机名、架构、处理器 |
| `GET /api/v1/hardware/cpu` | 型号、核心数、时钟速度、使用率 |
| `GET /api/v1/hardware/ram` | 总量、已用、可用、交换分区 |
| `GET /api/v1/hardware/disk` | 每个分区的使用情况 + I/O 总计 |
| `GET /api/v1/hardware/network` | 每个接口的地址 + 流量总计 |
### 健康检查
```
GET /health → 200 OK {"status":"ok"}
```
## 架构
```
Ahlyx-Labs/
├── cmd/server/main.go ← single entrypoint, registers all route groups
├── internal/
│ ├── shared/ ← cache, config, middleware, rate limiter, response helpers
│ ├── enrichment/ ← handlers, services (one file per source), models, validators
│ ├── scanner/ ← TCP scanner logic, OT/ICS port map, handler
│ └── hardware/ ← system telemetry handler and models
└── frontend/
├── landing/
├── enrichment/
├── scanner/
├── hardware/
├── robots.txt
├── sitemap.xml
└── vercel.json
```
**后端:** Go 1.25 · [chi](https://github.com/go-chi/chi) 路由器 · 按 IP 限制的令牌桶算法(`golang.org/x/time/rate`)· 内存 TTL 缓存(`sync.RWMutex`)· Docker 化以适配 Render
**前端:** 原生 JS / HTML / CSS · 暗色终端设计风格 · Vercel Analytics + Speed Insights · GA4 (G-99NT7YXMY8) · 所有页面均包含同意横幅
**基础设施:** Render(后端)· Vercel(前端)· Cloudflare(DNS, 代理)
## 速率限制
| 路由组 | 限制 |
|---|---|
| `/api/v1/ip`, `/api/v1/domain`, `/api/v1/hash` | 每个 IP 30 次/分钟 |
| `/api/v1/url` | 每个 IP 10 次/分钟 |
| `/api/v1/scanner/scan` | 每个 IP 5 次/分钟 |
| `/api/v1/hardware/*` | 每个 IP 30 次/分钟 |
## 缓存
响应根据来源可靠性使用 TTL 分层缓存在内存中:
| 条件 | TTL |
|---|---|
| 所有来源成功 | 1 小时 |
| 任意来源失败 | 15 分钟 |
| 所有来源失败 | 不缓存 |
## 环境变量
API 密钥在 Render 仪表板中设置,**不提交到仓库**。请参阅 `.env.example` 获取完整列表。
| 变量 | 使用方 |
|---|---|
| `ABUSEIPDB_API_KEY` | Enrichment — IP |
| `VIRUSTOTAL_API_KEY` | Enrichment — IP, domain, URL, hash |
| `IPINFO_API_KEY` | Enrichment — IP |
| `OTX_API_KEY` | Enrichment — domain |
| `GOOGLE_SAFE_BROWSING_API_KEY` | Enrichment — URL |
| `URLSCAN_API_KEY` | Enrichment — URL |
| `MALWAREBAZAAR_API_KEY` | Enrichment — hash |
| `PORT` | 服务器监听端口(默认:`8080`)|
| `CACHE_TTL_SECONDS` | 覆盖完全成功的 TTL(默认:`3600`)|
## 本地开发
### 前置条件
- Go 1.25+
- Docker(可选,用于容器构建)
### 本地运行
```
git clone https://github.com/Ahlyx/Ahlyx-Labs.git
cd Ahlyx-Labs
cp .env.example .env
# 在 .env 中填写 API keys
go run ./cmd/server
```
服务器在 `http://localhost:8080` 启动。在浏览器中直接打开任意 `frontend/*/index.html`,或使用静态文件服务器提供 `frontend/` 目录服务。
### Docker
```
docker build -t ahlyx-labs .
docker run --env-file .env -p 8080:8080 ahlyx-labs
```
## 部署
### 后端 → Render
1. **New → Web Service** → 连接 `Ahlyx/Ahlyx-Labs`
2. 环境:**Docker** · 分支:`master` · 根目录:*(留空)*
3. 在 Render 仪表板中添加所有 7 个 API 密钥作为环境变量
4. 部署 → 服务 URL:`ahlyx-labs.onrender.com`
5. 在 Render → Settings → Custom Domains 中添加自定义域名 `api.ahlyxlabs.com`
6. 验证:`curl https://api.ahlyxlabs.com/health`
### 前端 → Vercel
1. **New Project** → 导入 `Ahlyx/Ahlyx-Labs`
2. 根目录:`frontend` · 框架预设:**Other** · 构建命令:*(空)* · 输出目录:`./`
3. 部署 → 添加自定义域名 `ahlyxlabs.com` 和 `www.ahlyxlabs.com`
### DNS → Cloudflare
```
A @ → 216.198.79.1 (proxy ON)
CNAME www → 990da1196320c862.vercel-dns-017.com (proxy ON)
CNAME api → ahlyx-labs.onrender.com (proxy ON)
```
### 验证
```
curl https://api.ahlyxlabs.com/health
curl "https://api.ahlyxlabs.com/api/v1/ip/8.8.8.8"
# 在浏览器中打开 https://ahlyxlabs.com
# 在 GA4 Realtime report 中检查您的访问
```
## 模块
```
github.com/Ahlyx/Ahlyx-Labs
```
## 许可证
MIT
标签:AbuseIPDB, Ask搜索, Cloudflare, CMS安全, DAST, ESC4, EVTX分析, GitHub, Go语言, HTTP/HTTPS抓包, HTTP工具, ICS工控安全, IP查询, JavaScript, MITRE ATT&CK, OSINT, OSV, OT安全, Render, Serverless, Shodan替代, Sigma 规则, TCP端口扫描, URL扫描, Vercel, VirusTotal, 云原生部署, 哈希检测, 域名分析, 威胁情报, 威胁数据富化, 密码管理, 开发者工具, 态势感知, 恶意软件分析, 插件系统, 无线安全, 日志审计, 硬件监控, 程序破解, 系统仪表盘, 网络安全, 网络扫描器, 网络资产监控, 请求拦截, 调试辅助, 隐私保护