
Voyager Net
io.github.dir-ai由 GitHub 账号 dir-ai 发布v0.14.0更新于 Oct 24, 2026
A safe, read-only, authorized audit of one host you own: DNS, ports, TLS, HTTP hygiene.
概览
一个只读、需显式授权的网络审计服务器,让助手检查你所拥有的一台主机或域名的 DNS、端口、TLS 与 HTTP 卫生状况。
- 可以做什么
- 对单台主机执行审计,检查 DNS 记录及邮件/CA 卫生,并对宽松 SPF、未强制 DMARC 等给出分级结论。探测一组有限的常见 TCP 端口,报告真实状态(开放、关闭、被过滤、不可达)。根据服务主动返回的横幅识别产品与版本,并标记无需凭据即响应的认证类服务。检查 TLS:可接受的协议版本、证书链信任、密钥长度与证书到期时间。评估 HTTP 卫生:HSTS/CSP 质量、点击劫持防护、逐 Cookie 标志、CORS 与 HTTPS 跳转。每项发现附带严重程度、置信度和修复说明。
- 适用场景
- 适合让助手审查你所拥有主机或域名的外部安全状况,并说明具体修复方式,全程不利用漏洞、不做更改。适用于对 DNS、TLS 和 Web 头配置的定期自查。
- 运行要求
- 通过 npm 包 @dir-ai/voyager-net 作为本地进程运行(需要 Node.js 运行时)。仅限桌面端。未声明账号、API 密钥或环境变量。需要能访问目标主机的网络,且每次扫描必须显式标记为已授权。
安装
在 SourceWeft 中
- 打开 控制台中的 Voyager Net,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
voyager-net
Voyager's network organ — a safe, read-only, authorized audit of one host or domain you own, so an AI agent can find the falle in your infra and describe the fix.
Voyager penetrates the web (@dir-ai/voyager), the repo
(@dir-ai/voyager-repo), and — here — networks. This is the sense: it finds
problems. Applying fixes ("the hands") is a separate, consent-gated organ, by
design — an AI must never mutate live infrastructure on its own.
What it checks (read-only)
- Resolve-once + IP pinning (every probe, HTTP included) — a domain is
resolved a single time and the DNS, port, TLS and HTTP probes are all pinned
to that one IP via a custom socket lookup, so nothing re-resolves the name
mid-scan (closes the HTTP DNS-rebinding path). The resolved IP is classified
canonically (via
ipaddr.js) and any non-public address — loopback, private, link-local, CGNAT, NAT64, IPv4-mapped IPv6, metadata — is refused. - DNS — A/AAAA/MX/TXT/CAA + email/CA hygiene, and it grades the content:
SPF
+all(anyone may send) and DMARCp=none(no enforcement) are findings, not just presence checks. All target-controlled records are injection-framed. - Ports — a bounded common-service probe by plain TCP
connect()with real states (open / closed / filtered / unreachable — an OS timeout reads as filtered, not closed), no SYN tricks, no payloads, no range/CIDR sweeps. - Service fingerprinting — reads the banner a service volunteers on connect (SSH, SMTP, FTP, POP3, IMAP) to identify product + version (framed).
- Unauthenticated-service detection — for auth-expecting services (Redis,
Memcached, Elasticsearch, CouchDB, Docker API, ZooKeeper) it sends ONE benign,
read-only protocol hello (e.g. Redis
PING) and reports the service as exposed only if it answers without asking for credentials. Honest scope: this and the TLS/HTTP inspectors DO send bytes (a ClientHello, aGET /, a protocol hello) — the audit is active-but-safe (no writes, no mutation, no exploit), not purely passive, and it runs only against the host you authorized. - TLS — the full set of accepted protocol versions (not just the negotiated one), chain trust against the system store (any validation failure is reported, not only self-signed), RSA key size (EC/EdDSA exempted), certificate expiry/issuer.
- HTTP hygiene (graded) — status, Server banner, HSTS/CSP quality (weak
max-age,unsafe-inline/wildcard — not just presence), clickjacking protection, per-cookie Secure/HttpOnly (each cookie evaluated on its own), CORS wildcard and the dangerous credentials-with-origin case, version-leak, and HTTP→HTTPS redirect. All pinned to the vetted IP. - Honest partial — an open TLS/HTTP port that couldn't be inspected is reported as UNKNOWN, never folded into a "no issues" verdict.
Findings that name a detected service+version suggest checking it against a CVE feed — voyager-net detects the version; CVE matching stays a lookup, and CVE probing (Nuclei &c.) is out of scope — that is active testing, a separate, more-gated capability, not a read-only sense.
Each finding carries a severity, confidence, and a described fix — e.g.
"certificate expires in 6d → renew and automate ACME", "mysql reachable publicly →
restrict to a private network", "no DMARC → publish v=DMARC1; p=quarantine".
Safety — non-negotiable
- Authorized-only, fail-closed. Without
--authorized(CLI) /authorized:true(MCP) it refuses. You assert you own / may test the target. - One host or domain only. CIDR ranges, IP ranges, lists, wildcards, and URLs are rejected — it can never become a mass scanner.
- Cloud metadata endpoints are hard-blocked (169.254.169.254 etc.).
- Read-only. It never applies a fix, exploits, floods, or mutates anything. Bounded concurrency and timeouts; a plain TCP connect, not a scanner's SYN sweep.
- Untrusted output framed. Every target-controlled string — banners, certificate subject/issuer/SANs, Server/CSP headers, CORS value, and DNS TXT/CAA/MX records — is injection-stripped before your model sees it.
- Exit codes:
0clean ·1high/critical finding(s) ·2tool error / not authorized.
Scanning infrastructure you do not own or have explicit permission to test may be illegal in your jurisdiction. This tool is for auditing your own systems.
MCP
Tool: scan_host — same audit, fail-closed (authorized defaults off).
Library
Roadmap
Wrap Prowler/Steampipe (cloud config), Trivy (CVE), Hubble (flow) under the same trust contract; attack-path correlation; drift (IaC declared ↔ actual). Then — separately and consent-gated — the remediation "hands".
License
MIT
来源:README.md,提交 f945a38
工具
0版本历史
1- v0.14.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分

