链接看起来可疑?就用 url.vet 检测一下。
开源 URL 安全检测引擎 — 粘贴任意链接,实时获取信任评分、完整可解释的检测报告,以及带有页面预览的可分享安全报告。
English | 中文
⚡ 快速开始 · ⚙️ 检测引擎 · 🏛 架构 · 📚 文档 · 🤝 贡献
英文名 URLvet · 原名 SafeSurf
粘贴 URL → 实时获取信任评分、检测结论与详细报告。

在线体验:https://url.vet
git clone https://github.com/abhizaik/urlvet.git
cd urlvet
make start
打开 Web UI:localhost:3000
详细配置指南:docs/setup.md
| 功能 | url.vet | VirusTotal | Google Safe Browsing | URLScan.io | CheckPhish |
|---|---|---|---|---|---|
| 实时抓取,即时结果 | ✅ | 部分 | ❌ | 部分 | 部分 |
| 解释每条检测结论 | ✅ | 部分 | ❌ | 部分 | 部分 |
| 对新手友好的界面 | ✅ | 部分 | 部分 | 部分 | 部分 |
| 凭据表单检测 | ✅ | ❌ | ❌ | 部分 | ✅ |
| 跟踪重定向链 | ✅ | ✅ | ❌ | ✅ | ✅ |
| 详细技术洞察 | ✅ | ❌ | ❌ | ✅ | 部分 |
| 页面实时预览 | ✅ | ❌ | ❌ | ✅ | ✅ |
| AI/ML 检测 | ❌ | ✅ | ✅ | 部分 | ✅ |
| 已知钓鱼数据库覆盖 | 部分 | ✅ | ✅ | 部分 | 部分 |
| 批量扫描多个 URL | ❌ | ✅ | ✅ | ✅ | ❌ |
| 浏览器保护 | ✅ | ✅ | ✅ | ✅ | ❌ |
| 开源 | ✅ | ❌ | ❌ | ❌ | ❌ |
快速扫描器(如 Google Safe Browsing)仅做数据库查询,无法解释结论也不支持实时扫描。深度爬虫(如 URLScan.io)速度太慢。url.vet 填补了这一空白——实时分析、逐信号解释,而且完全开源。
通过 HTTP 分析 URL:
curl "http://localhost:8080/api/v1/analyze?url=https://example.com"
示例响应:
{
"url": "https://example.com",
"trust_score": 100,
"verdict": "Safe",
"reasons": {
"good_reasons": [...]
}
}
完整响应结构 → docs/api.md#example
18 个并发 goroutine 运行于 7 个信号类别,产生 33 个独立信号。每项检查都会输出一条原因字符串(正面、负面或中性),因此最终评分始终完全可解释,没有黑盒判定。
评分公式:finalScore = clamp(50 + (trustScore − riskScore) × 0.5) → 高风险 < 30 · 可疑 30–64 · 安全 ≥ 65
50 为中性基线——没有任何信号的 URL 得分恰好为 50(可疑),这是对未知 URL 的正确默认值。信任信号拉高评分,风险信号拉低评分,各以 0.5× 加权,两者互不压制。公式运算前,两个分数分别被限制在 0–100 之间,防止单一灾难性信号淹没其他所有信息。
URL 信号(8 项检测)
HTTP / 网络(4 项检测,单次 HTTP 请求)
DNS(3 项检测)
TLS / SSL(2 项检测,单次 TLS 握手)
域名情报(6 项检测)
内容分析(8 项检测)
<iframe>(凭据窃取 / 点击劫持载体)威胁情报(2 项检测)

本工具不提供安全保证,请与其他防御手段配合使用。
四个容器化服务运行于共享的 Docker bridge 网络中。Go 后端是唯一对外部 API 发起出站请求的服务——前端、Chrome 和缓存均为严格内部通信。

| 服务 | 职责 |
|---|---|
urlvet-web |
SvelteKit UI — :3000(生产)· :5173(开发) |
urlvet-backend |
Go REST API 与分析引擎 — :8080 |
urlvet-chrome |
无头 Chrome — WebSocket :9222 |
urlvet-valkey |
Valkey(兼容 Redis)— :6379,LRU 缓存,持久化卷 |
sync.WaitGroup 并发启动;每个任务的 panic 单独恢复,不影响整体请求server/
cmd/urlvet/ 入口点
internal/analyzer/ goroutine 运行器、任务定义、评分汇总
internal/service/
checks/ 18 个独立分析器实现
screenshot/ 无头 Chrome 集成
cache/ Valkey 客户端
threatfeeds/ PhishTank 客户端
typosquat/ 品牌相似度引擎
web/website/ SvelteKit UI
web/chrome-extension/ 浏览器扩展
docker/ 开发与生产 Compose 配置
docs/ API、部署、架构、安全文档
| 部署配置 | 本地与 Docker 部署、Makefile 命令 |
| 环境变量 | 所有环境变量说明 |
| 生产部署 | VPS、反向代理、防火墙 |
| API 参考 | 接口、频率限制、响应示例 |
| 架构说明 | 服务、请求生命周期、检测引擎 |
| 安全 | 管理员认证、密码哈希 |
| 性能 | 延迟、资源占用、调优 |
| 设计决策 | 为什么这样构建 |
| 运维 | 缓存、日志、备份 |
| 词汇表 | 术语与缩写 |
交互式 API 文档(Swagger UI):api.url.vet/swagger/index.html
如果您在学术或研究工作中使用了本项目,请引用 — 参见 CITATION.cff。
Copyright (C) 2021–2026 Abhishek K P
url.vet 采用双重许可:
如果这个项目对您有帮助,欢迎点个 Star ⭐
$ claude mcp add urlvet \
-- python -m otcore.mcp_server <graph>