---
title: 分销商（白标）
description: 允许合作伙伴使用他们自己的品牌和域名销售您的云服务——创建分销商、设置域名与 DNS、批发定价、默认值以及许可席位。
url: https://nexcmp.com/zh-cn/docs/customers/resellers/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# 分销商（白标） {#resellers-white-label}

> **管理员位置：**Customers › Resellers › List (`/resellers`)、Domains & SSL (`/resellers/domains`)、Permissions & wholesale (`/resellers/entitlements`)、Defaults (`/resellers/settings`)。分销商配额槽：System › Admin › License & updates (`/license`)。

## 功能说明 {#what-it-does}

**分销商**可以在**自己的域名**上获得带有其自身品牌的用户面板，拥有自己的客户、余额、价格以及（可选）支付渠道。他们以批发价从您这里采购，并以自己的价格销售。其客户永远不会看到您的品牌，且分销商域名绝无法打开您的管理控制台。分销商在位于 `https://partner.<your-domain>` 的**合作控制台**中运营其业务。

## 前提条件 {#requirements}

| 项目 | 要求 |
|---|---|
| 许可证 | 您的许可证中每个自定义分销商域名对应一个**分销商域名配额槽**。许可证页面会显示 `used/max` 个配额槽以及购买更多的链接。如果没有空闲配额槽，添加域名将会失败并提示“Out of license reseller domain slots”。 |
| DNS | 每个分销商域名必须指向您的服务器（见下文）。 |
| Web 服务器与 TLS | 主机名必须通过您的反向代理访问 NexCMP 面板，并且必须具备针对该名称的有效证书。 |
| 电子邮件 | 已为邀请邮件和通知邮件配置 SMTP。 |
| 总开关 | **Reseller settings › General › `rs_enabled`** 默认处于开启状态。 |

## 准备基础设施 {#prepare-the-infrastructure}

1. 确定服务器的公开地址：其 IPv4 地址，以及如果您偏好 CNAME，则使用一个指向它的主机名（例如 `sites.cloud.example.com`）。
2. 打开 **Customers › Resellers › Defaults** (`/resellers/settings`)，进入 **Domains & SSL** 组，并设置：

   | Key | 说明 |
   |---|---|
   | `rs_server_ipv4` | 分销商的 A 记录必须指向的公开 IPv4 地址。 |
   | `rs_cname_target` | 分销商的 CNAME 记录必须指向的主机名。 |
   | `rs_master_hosts` | 属于您自己主站的主机名（不能分配给分销商）。 |
   | `rs_platform_domain` | 用于**平台子域名**的可选父域名（例如 `partners.cloud.example.com` 可用于向分销商提供 `acme.partners.cloud.example.com`）。留空则禁用此选项。 |
   | `rs_sites_stale_minutes` | 证书服务被视为陈旧之前的分钟数（默认 15）。 |
   | `rs_ssl_fail_hours` | 引发错误之前的失败尝试小时数（默认 48）。 |

   ::: warning 发送说明前检查这些值
   `rs_server_ipv4`、`rs_cname_target` 和 `rs_master_hosts` 包含示例值。在向分销商提供 DNS 说明**之前**，请将其替换为您自己的服务器和域名，否则屏幕上显示的说明将指向错误的位置。
   :::

3. 点击 **Save**（系统会要求填写原因）。
4. 确保您的反向代理将分销商主机名转发至 NexCMP 面板，并为其中每个主机名提供证书。安装程序仅为主域名（以及可解析的 `admin.` 和 `partner.` 名称）配置 nginx 和 Let's Encrypt。如果您使用 Cloudflare，请代理该主机名并使用 Full SSL 模式。

## 在NexCMP中连接 {#connect-in-nexcmp}

### 创建分销商 {#create-the-reseller}

1. 打开 **Customers › Resellers › List** 并点击 **New reseller**。该向导共有 8 个步骤，并在最后完成所有资源的配置；每一步都可以安全地重试。

   | 步骤 | 填写内容 |
   |---|---|
   | **分销商** | 法定名称或商业名称、**slug**（4–31个字符，包含 a–z、0–9 或 `-`，以字母开头；同时也是发票前缀）、联系人姓名、电子邮件和电话、默认语言、分销商的账单详情（作为余额充值的买家）。 |
   | **控制台账号** | 用户名、账号邮箱、全名；**通过电子邮件发送一次性邀请链接**（有效期 72 小时，推荐）或显示一次临时密码。 |
   | **品牌** | 品牌名称、简称、标语、主色调、支持邮箱和电话、打印在客户发票上的卖家名称、徽标（浅色和深色背景）、方形图标和网站图标：PNG、JPEG、WEBP 或 ICO 格式，最大 256 KB，**不支持 SVG**。 |
   | **Domains** | 带 **also www** 的客户域名、哪个是主域名、**test domain** (sslip.io)、**dry-run** 选项或平台子域名。向导会显示 **DNS OK / DNS not ready** 以及需要创建的记录。 |
   | **Pricing & wallet** | 批发折扣 (%)、零售底价 (占标价的 %)、默认加价 (%)、信用额度、初始余额、低余额警报、对客户、虚拟机和域名的限制、站点功能 (客户注册、DDoS 保护、支持工单、自定义套餐、调整大小、Auto Scaling)。 |
   | **Payment channels** | 谁来收取客户款项 (见下文) 以及可选的自有 PayPal 和自有越南银行转账。 |
   | **Email** | 发件人名称和 Reply-To。在为分销商域名设置 DKIM 之前，From 地址保持平台地址。 |
   | **Review** | 检查各项内容并点击 **Provision everything**，或者 **Save draft (provision later)**。 |

2. 配置将在后台继续进行 (每 30 秒一次)。打开分销商以查看进度，如果某一步失败，可使用 **Continue provisioning** 或 **Retry**。

![带有示例值的全新分销商向导第一步](https://nexcmp.com/zh-cn/docs/images/customers/resellers-01-wizard.webp)

### 指向 DNS (由分销商完成) {#point-dns-the-reseller-does-this}

分销商 (或您) 创建 **Domains & SSL** 选项卡上显示的记录：

| 记录 | 名称 | 值 |
|---|---|---|
| TXT (所有权，仅限首次) | `_site-verify.<domain>` | `sv=<token>` 在屏幕上显示 |
| A (根域名，例如 `shop.example.net`) | 该域名 | 您的 `rs_server_ipv4` |
| CNAME (子域名，例如 `cloud.example.net`) | 该域名 | 您的 `rs_cname_target` (或指向 `rs_server_ipv4` 的 A 记录) |
| CNAME (可选) | `www.<domain>` | 您的 `rs_cname_target` |

另请参见：

- 删除任何 **AAAA** (IPv6) 记录，除非您的服务器响应该 IPv6 地址。
- 在验证域名期间，将 CDN 代理**关闭** (灰色云朵)。
- 如果域名具有 **CAA** 记录，请允许 `letsencrypt.org`。

每个域名的 TXT 记录中的令牌各不相同；请从屏幕复制。系统在前 48 小时内每 5 分钟重新检查一次 DNS，此后每小时检查一次，如果在 72 小时后仍缺少 TXT 记录，则释放该名称。

### 域名状态 {#domain-states}

在 **Customers › Resellers › Domains & SSL** (所有分销商) 以及分销商的 **Domains & SSL** 选项卡中：

| 状态 | 说明 |
|---|---|
| `pending_verify` | 等待 TXT 记录。 |
| `pending_dns` / `verifying` | 等待 A 或 CNAME 记录指向您。 |
| `issuing` | 正在签发证书。 |
| `active` | 正在提供分销商站点服务。 |
| `cert_expiring` | 证书即将过期；预计会进行续期。 |
| `dns_lost` | DNS 停止指向您；30 天后该域名将被删除。 |
| `error` | 查看错误代码；修复后 **Retry**。 |
| `removing` / `removed` | 正在被收回；许可槽位已退回。 |

行操作：**Check now**、**Retry**、**Make primary**、**Test mode** (用于测试域名)、**Remove**。


## 权限与批发 {#permissions-wholesale}

**Customers › Resellers › Permissions & wholesale** (`/resellers/entitlements`) 是一个矩阵：每行代表一个分销商，包含批发**折扣**（discount）和**加价**（markup），每项服务（例如 DDoS Shield 和 VPN）对应一个开关。当平台级功能开启时开关可编辑；否则单元格为只读并链接至设置。**Top-up codes** 子标签页用于设置每个分销商每月可签发的代码数量（参见 [Promotions](https://nexcmp.com/zh-cn/docs/billing/promotions/)）。

定价规则：

- 批发价 = 目录价 x (1 - 折扣)，且可在分销商的 **Wholesale pricing** 标签页中按套餐和按计费周期进行覆盖。
- 分销商设置零售价，且不得低于**底价**（目录价的百分比）。
- 分销商的**钱包**在其客户购买时支付批发价。钱包具有信用额度、宽限期和透支上限（参见 Defaults）。

## Defaults {#defaults}

**Customers › Resellers › Defaults** (`/resellers/settings`) 是适用于所有分销商的 `rs_*` 键。每次更改都需要提供原因并进行审计。

| 组 | Key | 默认值 | 说明 |
|---|---|---|---|
| 常规 | `rs_enabled` | 1 | 启用分销商计划。 |
| | `rs_platform_collect_enabled` | 0 | 允许平台代分销商收取客户付款。**请在通过法律审查后方可启用。** |
| | `rs_totp_required` | 1 | 分销商控制台账户必须强制使用双因素认证。 |
| | `rs_agreement_version` | 1 | 他们必须接受的分销协议版本。 |
| 默认定价 | `rs_default_discount_bp` | 2000 (20 %) | 新分销商的批发折扣（基点，0至9000）。 |
| | `rs_default_markup_bp` | 2500 (25 %) | 默认加价幅度（0至50000）。 |
| | `rs_default_floor_bp` | 9000 (90 %) | 零售底价（0至20000）。 |
| | `rs_default_max_domains` | 3 | 每个分销商允许拥有的域名数量。 |
| 钱包与提现 | `rs_grace_hours` | 72 | 分销商钱包余额清零后，其客户服务受影响前的宽限期。 |
| | `rs_overdraft_cap_cents` | 5000 | 钱包允许透支。 |
| | `rs_retention_days` | 14 | 已关闭的分销商的虚拟机被销毁前的天数。 |
| | `rs_payout_hold_days` | 30 | 佣金在可提现前被冻结的天数。 |
| | `rs_payout_min_cents` | 5000 | 最小提现金额。 |
| | `rs_topup_min_cents` | 2000 | 分销商单次最小钱包充值额。 |
| 支付与邮件 | `rs_webhook_base` | 空 | 分销商网关Webhook的公共基础URL（留空则使用站点URL）。 |
| | `rs_mail_from` | 空 | 分销商邮件的发件人地址。 |
| | `rs_invoice_show_processor` | 1 | 在发票上显示支付处理商。 |
| | `rs_gw_stripe_enabled`, `rs_gw_usdt_enabled` | 1 | 分销商是否可配置其自己的Stripe或USDT。 |

## 谁来收取客户付款 {#who-collects-customer-payments}

| 模式 | 说明 |
|---|---|
| **分销商收取（自有渠道）** — 默认 | 分销商连接其自己的Stripe、PayPal、USDT或银行账户。其Webhook为`https://<reseller-domain>/v1/billing/<gateway>/webhook/r/<id>`。保存的银行卡和[auto top-up](https://nexcmp.com/zh-cn/docs/billing/auto-top-up/)不适用于这些站点。 |
| **平台收取** | 你的渠道将显示在分销商站点上。在`rs_platform_collect_enabled = 1`之前处于锁定状态。 |
| **混合** | 按每个渠道单独选择的组合。 |

## 分销商可见内容 {#what-the-reseller-sees}

位于`https://partner.<your-domain>`的合作伙伴控制台包含“概览”、“报告”、“客户”、“虚拟机”、“工单”、“订单”、“支付”、“价格”、“品牌”、“落地页与法律”、“域名与SSL”、“邮件”、“钱包”和“支付渠道”。控制台账户的角色分为*分销商*（完全权限）或*staff*（只读）。若要亲自查看，请打开该分销商并点击**Sign in to partner console**：你将进入60分钟的会话，所有写入操作都会在管理员日志和分销商日志中记录你的名字，且资金操作需要进行二次确认。

## 验证 {#verify}

1. Provisioning 完成后，分销商的列表行将显示 *active* 以及绿色的 **Provisioning** 列。
2. 在浏览器中打开分销商的域名：将显示带有其品牌的专属登录页面。`https://<reseller-domain>/admin` 返回 404。
3. 在该域名上注册一个测试客户：该客户将显示在 **Customers › List** 中，且 **Site** 列中显示该分销商。
4. 许可证页面显示已使用的槽位数量增加一个。

## 限制与注意事项 {#limits-notes}

- 每个自定义或测试域名占用一个许可证槽位；平台子域名不占用槽位。
- 暂停分销商会保留数据；**Close reseller** 会回收所有域名槽位，且仅在保留期结束后才允许销毁虚拟机。
- 分销商客户会显示在您的客户列表中，并且可以像其他客户一样被代登录（链接将在分销商的域名上打开）。
- 分销商无法查看或更改您的支付渠道、默认配额或其他分销商。

## 故障排查 {#troubleshooting}

| 症状 | 原因 | 解决办法 |
|---|---|---|
| “代理商域名授权配额用尽” | 所有槽位均已用完 | 释放槽位（删除域名）或在许可证页面购买更多槽位。 |
| Domain stuck in `pending_verify` | TXT 记录缺失 | 准确按照所示创建 TXT 记录；使用 **Check now**。 |
| Domain stuck in `pending_dns` | A/CNAME 未指向您、存在 AAAA 记录或启用了 CDN 代理 | 修复 DNS 并关闭代理，然后点击 **Check now**。 |
| `error` state | 查看行上的代码（例如阻止 Let's Encrypt 的 CAA、速率限制） | 修复后点击 **Retry**。 |
| 浏览器提示主机未知或返回 "421" | 主机名未添加到许可证中，或者未路由到面板 | 通过分销商添加域名（会消耗一个槽位）并修复反向代理。 |
| 说明中显示的 IP 或主机不正确 | `rs_server_ipv4` / `rs_cname_target` 仍在使用示例值 | 在 Defaults 中进行设置。 |
| 分销商无法启用平台收集 | 已锁定 | 在法律审核后设置 `rs_platform_collect_enabled`。 |


