SKU 通用流程:history 差分产出 shelf_events(价/有货,unknown≠售罄), shops trust 分进 tab-caches/黑市面板;礼品卡面值假差标 noise; ensure-shops --record-outcome 回填我方履约。设计见 manhuang-procurement-radar.md。
22 KiB
蛮荒(Manhuang)完整手册
更新:2026-07-12(含全量核实、SMS-Activate 停运、free/MSRP/providers)
定位:AI / OSINT 能力供应链作战室——观察、比价、缺口、隐渠信号。
不成交:黑市 / 鬼市都只做观察;下单、代付、登录暗网商城不在本系统内。
本手册是运维总入口。极简索引:manhuang-README.md。面板语义见 joy-manhuang.md;专题见文末「文档地图」。
最近全量探活:manhuang-full-audit-2026-07-12.md。
快速跳转
| 要做什么 | 看哪里 |
|---|---|
| 日常刷新管线 | §6 · §19 |
| 采购雷达 · 货架事件/信任/RSS vs 自采 | procurement-radar |
| 接码用谁 | §15(仅 5sim;SMS-Activate 已停) |
| shops / X 观察店 | §8 |
| channels 校验 / status 语义 | §9 |
| Tor / 鬼市 / onion | §10 · guishi-probe |
| Quote API / free / MSRP | channels-and-quote-api |
| 自建 CD/RSSHub 别重起 | §11 · selfhost-catalog |
1. 一句话架构
外源探针(Mac clearnet + scout Tor)
│ 控频 launchd / cron
▼
~/.cache/manhuang/
quotes/ (ai-accounts · community-prices · msrp-litellm · free-llm-lists)
relays/ (status · candidates-from-providers)
guishi/ · changedetection/ · tab-caches · pipeline-last
│
collect_manhuang() ──► joy dashboard UI(tab 驾驶舱)
│
quote-aggregator :8877(本机只读:/v1/quotes · /v1/msrp · /v1/free …)
| 角色 | 机器 | 做什么 |
|---|---|---|
| Mac / linuxjoy | 宿主机 | 黑市比价、community(价+free+MSRP)、具名中转、CD、notify、collect、面板 |
| scout | 侦察 VM | Tor :9050、鬼市探针、onion 标题级探活、handbooks、open-feeds/Miniflux |
| ai-team | 10.211.55.107 | ChangeDetection :5000 · RSSHub :1200(Docker 长期服务落这里,不重复起栈) |
| konqi | joy-konqi | 链危机 / 品牌威胁通知接收方 |
2. 黑市 vs 鬼市(铁律)
| 黑市 heishi | 鬼市 guishi | |
|---|---|---|
| 对象 | 清网可审计平台、SKU 比价 | 隐渠、onion、OSINT、本地 shops |
| 数据 | blackmarket.skus · demand · channels.json |
guishi.channels · shops · probe · onion |
| 能做 | 探价、demand 挂钩、价差/缺口推 konqi | Tor 标题探活、品牌撞库、目录质量 |
| 不做 | 代下单 / 代付 | 登录市场、爬商品分页、自动成交 |
分层字段:
market_layer:heishi|guishi(明面 marketplace heishi kind 优先)- 鬼市
quality:signal(有 handle/url 可跟)|live(探针活)|placeholder(仅目录壳)
channels.json status 语义(货架过滤)
| status | 含义 | 是否进 heishi 货架 |
|---|---|---|
active |
主路径可探针 | 是 |
watch / watch_only / catalog_only / needs_key / optional |
观察或需密钥 | 观察向(归一为 watch) |
down |
核实不可达(SSL/挂) | 是但标弱;中转勿主用 |
shutdown / dead / exit_scam |
停运/跑路 | 否(collect 跳过) |
例:SMS-Activate = shutdown(2025-12 官方停运),禁止当「待 key 活源」。
3. 价值链与导航
支付(碎银) → 原料(接码/邮箱/代理) → 自产(密令注册机) → 号池(Codex/API)
→ 消费(接口探活) → 工程(Agent) → 出口(通道/Tor)
风险旁路:帮派(威胁) · 密室(暴露面)
外购旁路:黑市(明面 demand/实价) · 鬼市(隐渠/TG/发卡/onion 线索)
一级导航(靠前):
总览 → 密令 → 黑市 → 鬼市 → 碎银 → 接口 → Agent → 通道 → 帮派 → 密室 → 数据源 → 辅线…
成功标准:
- 10 秒内看到哪一环红、next 是什么
- Codex 全死时总览/密令/黑市同一危机叙事
- 黑市主视野 = 需求 + 实价;锚价折叠
- 默认进 总览驾驶舱
4. 配置路径
| 用途 | 仓库(可提交) | 本地 / 私密(不进 git) |
|---|---|---|
| 黑市渠道目录 | configs/manhuang/channels.json |
~/.config/manhuang/channels.json |
| 产品类型 | configs/manhuang/product-types.json |
覆盖同路径 |
| 鬼市扩展目录 | configs/manhuang/guishi-channels.json |
~/.config/manhuang/guishi-channels.json |
| 具名中转 | configs/manhuang/relays.json |
~/.config/manhuang/relays.json |
| onion 白名单 | configs/manhuang/onion-markets.example.json |
~/.config/manhuang/onion-markets.json · scout ~/data/manhuang/onion-markets.json |
| 本地店表 | configs/manhuang/shops.example.json |
~/.config/manhuang/shops.json · scout ~/data/manhuang/shops.json |
| 密钥 | configs/manhuang/keys.env.example |
~/.config/manhuang/keys.env(§14 表) |
缓存(Mac):
~/.cache/manhuang/
quotes/ai-accounts.json # 黑市 SKU 比价
quotes/community-prices.json # proxy 价 + 5sim + free/msrp 摘要字段
quotes/msrp-litellm.json # LiteLLM 官方 token 锚
quotes/free-llm-lists.json # mnfst free + cheahjs 摘要
quotes/.demand-probe.{request,last}
relays/status.json # 具名 + providers.yaml 动态候选
relays/candidates-from-providers.json
changedetection/status.json
guishi/{status,handbooks}.json # 自 scout 拉回或 scp
tab-caches.json
pipeline-last.json # 管线健康快照(含侧线阶段)
chain-alerts.jsonl
scout 数据:
~/data/manhuang/guishi/status.json
~/data/manhuang/guishi/handbooks.json
~/data/manhuang/{shops,onion-markets,guishi-channels}.json
~/logs/manhuang-guishi.log
5. 两条管线(别混)
| 管线 | 目的 | 入口 | 文档 |
|---|---|---|---|
| A 供应链比价 | 黑市价 / demand / 中转 / free·MSRP / 鬼市 ssh / 通知 | Mac run-quote-probe.sh + Quote API |
本手册 · channels-and-quote-api |
| B 开源态势 | 公开 IOC/KEV、live-pulse 品牌、Miniflux、open-feeds | scout cron + Mac live-pulse | data-sources · oss-path |
面板 collect_manhuang 两边都读。Docker 长期服务(CD/RSSHub)只在 ai-team。
6. 脚本清单
路径均相对 ~/Projects/joy-cli。scripts/manhuang/ 现网全表:
| 脚本 | 作用 |
|---|---|
run-quote-probe.sh |
主入口:智能 quotes + community + relays + CD + guishi + tab-caches + notify + pipeline-last |
probe-ai-account-quotes.py |
GGSel/FunPay/Plati…;--demand-first 只打 gap SKU |
probe-community-prices.py |
awesome 价 + OpenRouter + 5sim + free + LiteLLM MSRP |
probe-named-relays.py |
relays.json + providers.yaml 动态候选(reverse 跳过) |
probe-changedetection.py |
ai-team CD 状态 |
ensure-cd-watches.py |
CD 幂等建 watch(--shops / --guishi / --all-guishi) |
probe-guishi.py |
仅 scout:浅水 + onion 标题 |
build-guishi-handbooks.py |
闲鱼等手册索引 |
ensure-shops.py |
shops init / validate / sync-scout / add-stub |
check-tor-scout.sh |
scout Tor SOCKS + circuit(写 tor_hint) |
validate-channels.py |
channels.json 结构校验 |
quote-aggregator.py |
本机 :8877 只读 API |
build-tab-caches.py |
新鲜度 / price_moves / demand_probe 摘要 |
notify-chain.sh |
链危机 / 大价差 / 中转 down → konqi(2h) |
notify-guishi-brand.sh |
品牌 threat → konqi(4h;exposure 默认不推) |
enrich-open-hits.py |
管线 B:公开 feed 对撞自有域名(scout) |
6.1 日常管线(首选)
bash scripts/manhuang/run-quote-probe.sh # 智能:demand 旗 / 轮换 / 轻量
bash scripts/manhuang/run-quote-probe.sh --demand-first --force
bash scripts/manhuang/run-quote-probe.sh --rotate --force
run-quote-probe.sh 串联(大致):quotes → community → relays → CD → guishi(ssh) → tab_caches → notify → pipeline-last.json。
exit code 以 quotes 为主;尾部失败记 log + pipeline,不伪装 quotes 失败。
7. 需求优先(demand-first)与缺口闭环
7.1 何时自动挂旗
collect_manhuang 检测:
- 链危机(
chain.crisis) - 需求货架无 marketplace 实价 /
sku_gap偏大
→ 写 ~/.cache/manhuang/quotes/.demand-probe.request(约 90min 节流)
→ launchd 每 30min 的 run-quote-probe.sh 消费 → --demand-first --force
7.2 手动补 gap
cd ~/Projects/joy-cli
python3 scripts/manhuang/probe-ai-account-quotes.py --demand-first --force
# 成功后会写 quotes + .demand-probe.last
7.3 实测快照(2026-07-12)
| 项 | 值 |
|---|---|
| 探针模式 | demand-first gap manual |
| probed_n | 22 SKU |
| market_hits | 12(FunPay / GGSel / 5sim 等) |
| 例:codex 相关 | hits 4→7;codex_quota $8 FunPay |
| quotes 盘 | skus≈59;demand 货架≈19 |
| 鬼市 | channels 146 · quality signal/live/placeholder ≈36/56/54 |
| 黑市 channels | 52 |
缺口不会永远为 0:官方锚价、无灰市 lot 的 SKU 会保留 gap,属预期。
8. 本地店表 shops.json
8.1 流程
# 1) 初始化空壳(或已有则原样)
python3 scripts/manhuang/ensure-shops.py
# 2) 加可编辑位(非 demo)
python3 scripts/manhuang/ensure-shops.py --add-stub
# 3) 编辑真实 TG handle / 发卡 URL(频道名不进 git)
$EDITOR ~/.config/manhuang/shops.json
# 4) 校验:每条 real 店须有 url 或 handle 或 rsshub_path
python3 scripts/manhuang/ensure-shops.py --validate
# 5) 同步 scout(probe 会读)
python3 scripts/manhuang/ensure-shops.py --sync-scout
# 6) CD 盯 http URL(无 URL 的 TG 不会建 watch)
python3 scripts/manhuang/ensure-cd-watches.py --shops
8.2 字段要点
id唯一;勿含demo/example(否则 collect 当示例跳过)handle或url或rsshub_path至少一项sku_for:挂到 demand capability(如codex_quota/claude/sms)status:watch/active…- brands 列表驱动鬼市品牌撞库
8.3 当前状态(2026-07-12)
- 本地 ~25 条观察店(FunPay/GGSel/5sim/OpenRouter/awesome + X 检索式 + 样本发卡/中转)
- validate ok · 已 sync scout · CD 对 http URL 已建 watch
- 私有 TG 卖号 Bot:可改
tg-slot-ai-private或--add-stub,不要把私人 handle 提交 git - 刻意不收录:随机 WhatsApp/手机号 spam
9. channels.json 校验与目录块
python3 scripts/manhuang/validate-channels.py
python3 scripts/manhuang/validate-channels.py --json # 机读
校验内容:
marketplaces[]:id、base/url(catalog_only/manual允许无 base)sms_apis[]/relay_price_feeds[]/named_relay_stations[]:iddemand_sku_ids:非空字符串列表- 与
product-types.json交叉提示(未知 product_types 警告)
| 块 | 用途 |
|---|---|
marketplaces |
明面店 + FunPay lots |
sms_apis |
接码(5sim active;SMS-Activate shutdown) |
relay_price_feeds |
GitHub JSON / OpenRouter / LiteLLM MSRP / providers.yaml |
named_relay_stations |
具名中转(down 的勿主用) |
free_llm_lists |
free 档目录(mnfst 机读 + cheahjs) |
demand_sku_ids |
demand-first 关键 SKU |
仓库基线量级:marketplaces ~10 · sms 4 · relay feeds ~7 · free lists ~5 · demand_sku_ids 21。
10. Onion 白名单与 Tor
10.1 策略(policy)
"checkout": false,
"scrape_listings": false,
"title_probe": true
只探活 + 抽 <title>;不登录、不下单、不爬商品分页。example.onion 会被跳过。
10.2 部署
cp configs/manhuang/onion-markets.example.json ~/.config/manhuang/onion-markets.json
# 仅保留 legal + 经 dark.fail 核对的 observe 地址
scp ~/.config/manhuang/onion-markets.json scout:data/manhuang/onion-markets.json
bash scripts/manhuang/check-tor-scout.sh
# 可选:bash scripts/manhuang/check-tor-scout.sh --restart
ssh scout 'python3 ~/scripts/manhuang/probe-guishi.py'
10.3 实测(2026-07-12)
| 检查 | 结果 |
|---|---|
| SOCKS 9050 | ok |
| check.torproject.org/api/ip | circuit_ok · IsTor |
| 合法 onion 标题 | Tor Project alive(<title>Tor Project | Anonymity Online);DDG onion 偶发 40s 超时 |
| clearnet 浅水 | 近次 checks 51 · ok≈46 · fail≈5(论坛/paste 超时属常态) |
| 说明 | 电路活 ≠ 每个 .onion 秒开;白名单只保 legal 基线即可 |
11. ChangeDetection
# keys.env
# CHANGEDTECTION_URL=http://10.211.55.107:5000
# CHANGEDTECTION_API_KEY=...
python3 scripts/manhuang/ensure-cd-watches.py --all-guishi
python3 scripts/manhuang/probe-changedetection.py
坑:Mac Python 不认 NO_PROXY 的 CIDR;脚本对 10.x 强制直连。
workers 过多会拖死 Flask → 502;compose 建议 NUMBER_OF_WORKERS=2 + healthcheck。
12. 通知
| 脚本 | 触发 | 节流 | 通道 |
|---|---|---|---|
notify-chain.sh |
chain crisis / Codex 无额 / 价差 Δ≥1 / 中转 down | 2h / mode | vm-dm konqi → 失败落 ~/office/konqi/inbox |
notify-guishi-brand.sh |
brand threat(钓鱼/IOC) | 4h | 同上;exposure 默认不推 |
不改 NATS ACL。强制:加 --force。
13. 面板字段速查
| API 字段 | UI |
|---|---|
manhuang.chain |
总览六环 |
manhuang.blackmarket |
黑市 demand / skus / shelf |
manhuang.guishi |
鬼市 channels / shops / probe / brand_hits |
manhuang.demand_probe |
总览/黑市 demand 条 |
manhuang.pipeline |
数据源 tab 管线表 + 新鲜度(含侧线阶段) |
manhuang.community_prices |
社区价 overlay |
manhuang.relays |
具名中转 |
manhuang.changedetection |
CD 摘要 |
manhuang.channels_catalog |
交易平台目录卡 |
manhuang.tab_resources |
各 tab 资源图谱辅线(默认折叠) |
14. launchd / cron / 密钥
Mac launchd(仓库 configs/launchd/)
| Label | 周期 | 程序 | 日志 |
|---|---|---|---|
com.feibisi.manhuang-quotes |
30min | run-quote-probe.sh |
~/logs/manhuang-quotes.{stdout,stderr}.log |
com.feibisi.manhuang-quote-api |
KeepAlive | quote-aggregator.py |
~/logs/manhuang-quote-api.*.log |
cp configs/launchd/com.feibisi.manhuang-quotes.plist ~/Library/LaunchAgents/
cp configs/launchd/com.feibisi.manhuang-quote-api.plist ~/Library/LaunchAgents/
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.feibisi.manhuang-quotes.plist
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.feibisi.manhuang-quote-api.plist
launchctl kickstart -k gui/$(id -u)/com.feibisi.manhuang-quote-api
curl -s http://127.0.0.1:8877/v1/summary | jq .
scout cron(建议)
probe-guishi + handbooks:25 */2 * * *;open-feeds 见 data-sources。
keys.env
模板:configs/manhuang/keys.env.example → ~/.config/manhuang/keys.env
| 变量 | 用途 | 必需? |
|---|---|---|
CHANGEDTECTION_URL / API_KEY |
ai-team CD | CD 建议有 |
BRAND_DOMAINS |
鬼市品牌撞库 | 建议 |
RSSHUB_BASE |
shops 拉频道 | 可选 · 用 http://10.211.55.107:1200 |
ABUSECH_* / OTX_* / URLSCAN_* |
live-pulse 管线 B | 可选 |
15. 接码源核实(2026-07-12)
| 源 | 结论 |
|---|---|
| 5sim | 主路径 · guest prices HTTP 200 · 价缓存有效(多国) |
| SMS-Activate | 官方停运(约 2025-12-22)· 首页仍 200 但是告别页 “SMS-Activate service is closed / completely ceased since December 22” · 品牌已废 · 冒充新站=诈骗 · 禁止充值/探针 |
| SMS-Man | 首页 403/盾 · watch_only |
| GrizzlySMS | 首页 200 · watch_only(未接 key) |
社区常说「跑路」:实质是停运 + 提现门槛争议(曾要求 ≥$30 退款),官方自称技术转 HeroSMS;不是「待 API key 的活源」。目录字段:status: shutdown。
collect 铁律: shutdown / dead / exit_scam 不得进入黑市 channels(已修 catalog 漏过滤)。
同日更大范围核实见 manhuang-full-audit-2026-07-12.md(68 URL · 65 ok)。
| 中转核实 | 结论 |
|---|---|
| openrouter / yunwu / bltcy / tokenx24 | 可用 |
| geshihua / uiuiapi | SSL 不可达 · status: down · 不主用 |
16. 排障速查
| 症状 | 检查 |
|---|---|
| 黑市/鬼市 UI 空 | layer 折叠过猛?看 counts;重启 dashboard 重 collect |
| demand 永远无价 | 跑 --demand-first --force;看 FunPay/GGSel 是否被墙 |
| pipeline 老旧 | run-quote-probe.sh --force;看 pipeline-last.json stages |
| Tor down | check-tor-scout.sh;scout systemctl --user status tor |
| onion 全超时 | 电路 ok 时仍可能慢;加长 timeout 或先只保 legal 基线 |
| CD 502 | 降 workers;确认 10.x 直连 |
| shops validate 失败 | 填 handle/url;demo id 会被跳过 |
| 密钥进面板 | 禁止;只放 keys.env / 工具配置 |
17. 文档地图
| 文档 | 内容 |
|---|---|
| 本手册 | 总入口 · 运维闭环 · 铁律 · 接码核实 |
| manhuang-README.md | 极简索引 + 一键体检 |
| joy-manhuang.md | 面板页结构 / tab 语义 |
| manhuang-supply-chain.md | 供应链 v9 · 成功标准 · 轮询 |
| manhuang-procurement-radar.md | 采购雷达 · 货架事件 · 信任 · RSS vs 自采 |
| manhuang-channels-and-quote-api.md | 渠道 + Quote API + free/MSRP |
| manhuang-guishi-probe.md | 鬼市探针 / shops / onion / brand |
| manhuang-full-audit-2026-07-12.md | 全量探活快照(68 URL) |
| manhuang-data-sources.md | 数据源契约 / live-pulse |
| manhuang-markets-catalog.md | 市场与产品类型摘要 |
| manhuang-selfhost-catalog.md | 自托管选型(含 ai-team CD/RSSHub) |
| manhuang-oss-path.md | 开源默认路线 |
| manhuang-tabs-review-2026-07-11.md | 历史 tab 评审纪要(默认可不读) |
代码:
- 后端
src/joy/dashboard/manhuang.py·manhuang_shelf.py(事件/信任纯函数) - 前端
src/joy/web/js/tabs/manhuang.js(货架事件条 · 信任榜 · 价差) - 配置
configs/manhuang/(shops.example trust 字段) - 脚本
scripts/manhuang/(build-tab-caches写 shelf_events / shops_trust)
18. 安全与合规
- 密钥 / cookie / token 永不进 git、永不进面板
- shops / onion 真实地址只在本机与 scout 私有路径
- 观察可以大胆;成交在系统外人工
- 品牌 threat 通知给人裁决,脚本不自动处置
- 暗网只做白名单标题探活,不扩爬
- 已停运品牌(如 SMS-Activate)禁止充值;冒充「新官网」按诈骗处理
- 中转
providers.yaml收录 ≠ 背书;只 health,不自动注册
19. 常用复制块
cd ~/Projects/joy-cli
# 全管线强制
bash scripts/manhuang/run-quote-probe.sh --demand-first --force
# 仅 gap 补价
python3 scripts/manhuang/probe-ai-account-quotes.py --demand-first --force
# community:proxy 价 + 5sim + free + MSRP
python3 scripts/manhuang/probe-community-prices.py
python3 scripts/manhuang/probe-named-relays.py
# channels 校验
python3 scripts/manhuang/validate-channels.py
# shops
python3 scripts/manhuang/ensure-shops.py --validate
python3 scripts/manhuang/ensure-shops.py --sync-scout
# Tor + 鬼市
bash scripts/manhuang/check-tor-scout.sh
scp scripts/manhuang/probe-guishi.py scout:~/scripts/manhuang/
ssh scout 'python3 ~/scripts/manhuang/probe-guishi.py'
# CD
python3 scripts/manhuang/ensure-cd-watches.py --all-guishi
python3 scripts/manhuang/probe-changedetection.py
# Quote API 抽查
curl -s http://127.0.0.1:8877/v1/summary | jq .
curl -s http://127.0.0.1:8877/v1/msrp | jq '.anchors|keys'
curl -s http://127.0.0.1:8877/v1/free | jq '.providers_n // .mnfst.providers_n'
# 通知(慎用 force)
bash scripts/manhuang/notify-chain.sh
bash scripts/manhuang/notify-guishi-brand.sh
20. 文档完备性(自检 · 2026-07-12)
| 问题 | 够吗? |
|---|---|
| 新人如何跑通主路径? | 够 — §6 + §19 复制块 |
| 接码用谁 / SMS-Activate 坑? | 够 — §15 |
| 黑市 vs 鬼市边界? | 够 — §2 |
| Quote API / free / MSRP? | 够 — channels-and-quote-api |
| shops / X 观察店? | 够 — §8 |
| 自建别重复起栈? | 够 — §5 + selfhost-catalog |
| 全量探活快照? | 够 — full-audit |
| keys / launchd / 日志路径? | 够 — §14(本轮补全) |
| 双管线 A 比价 vs B 开源态势? | 够 — §5(本轮补全) |
| 脚本是否全覆盖? | 够 — §6 全表(含 enrich-open-hits) |
| guishi-channels 115+ 条怎么维护? | 弱 — 只说加载路径,未写「如何批量改 layer」;够用则手改 JSON |
| 面板字段 → UI 组件对照? | 弱 — 有字段表无截图/组件 id;开发靠读 manhuang.js |
| 端到端验收清单(一键)? | 中 — full-audit §11 + §19 可拼;未做成单一 make check |
| 英文读者 / 对外 README? | 不需要(内网运维文档) |
结论: 内网运维 够用。剩余弱项是「目录批改」与「UI 对照」,不挡日常 probe/排障。新事实(停运源、down 中转)以 channels.json + full-audit 为准,手册 §15 已钉死接码。