代理机构搜索”子账户”,是因为大多数工具都用这个词来指一个父级登录下包含多个客户账户的结构。在搭建任何架构之前,有必要先弄清楚这个概念在 Shifter 中具体对应什么,因为正确的结构取决于此。
在 Shifter 上,有两个工具分别承担这项工作。**工作区(workspace)**是一个独立的空间,拥有自己的套餐、钱包、发票和团队,同一个人可以属于多个工作区,并通过侧边栏在它们之间切换。**子账户(sub-account)**是代理用户名中的一个标签,用于将单个套餐的流量按客户拆分,在面板和 API 中分别报告(于 2026 年 10 月推出)。使用量按套餐跟踪,也按套餐内的子账户跟踪。把这些事实纳入你的结构,其余的部分自然就会理顺。
子账户需要做到什么
抛开术语不谈,代理机构对客户子账户其实有四项要求。
| 需求 | 含义 | Shifter 如何提供 |
|---|---|---|
| 隔离 | 一个客户的流量和预算绝不与另一个客户混在一起 | 套餐不会跨工作区 |
| 归属 | 你能说清每个客户花了多少 | 使用量按套餐和子账户分别报告 |
| 访问控制 | 合适的人看到合适的内容 | 每个工作区有 Viewer、Billing 和 Admin 角色 |
| 干净的下线流程 | 客户离开时不影响其他任何人 | 移除成员,关闭该客户的套餐 |
本指南接下来的内容,就是在于如何安排工作区和套餐,使这四点同时成立。
两种可行的结构
客户拥有的工作区
每个客户拥有自己的工作区。客户为钱包充值并收取发票。代理机构的客户负责人被邀请作为 Admin 加入每个客户的工作区,并从那里负责采集工作。
当客户愿意持有自己的计费关系时,这是最干净的安排。隔离是绝对的,归属无需额外工作,因为每个客户的发票本身就是独立的,下线流程就是客户把代理机构从其工作区中移除。代理机构的一个登录账号就能通过工作区切换器访问每一个客户。
代理机构拥有的工作区,每个客户一个套餐
代理机构拥有一个工作区,在其中为每个客户单独购买一个套餐,并根据每个套餐的使用量向客户计费。
这适合将采集服务作为留存服务一部分进行转售的代理机构。只要严格遵守规则,归属就能成立:一个客户,一个套餐,绝不共享,或者在共享套餐上,一个客户,一个子账户。在选择这种方式之前,有两个后果值得了解。
- 钱包的范围是整个工作区,任何套餐的超量都从该钱包中扣除。工作区内的每个套餐都从同一个资金池中提取,因此一个客户的流量激增可能会消耗掉另一个客户依赖的余量。请密切关注每个套餐的超量情况,或为高流量客户单独设立工作区。
- 工作区内的所有内容对其成员都是可见的。不要将客户联系人邀请进共享的代理机构工作区,即使只是作为 Viewer,因为他们会看到其他所有客户的套餐和发票。
许多代理机构最终会采用混合模式:为希望自行计费的大客户设立客户拥有的工作区,同时用一个代理机构工作区容纳按留存计费的小客户的套餐。
具体设置方法
无论采用哪种结构,操作机制都是一样的。
- 打开你要管理的工作区中的 Team 页面,从面板侧边栏进入。
- 通过邮箱邀请并选择角色。 已有 Shifter 账户的用户下次登录时会看到一键加入(Join)提示,并保留自己原有的账户。新邮箱则会收到一个简短的注册流程,通过魔法链接完成,无需密码。
- 从侧边栏的下拉菜单中切换工作区,当你属于多个工作区时该菜单会出现。屏幕上的所有内容,包括套餐、钱包、发票、团队,都会随之变化。
- 在客户所属的工作区中购买其套餐。 套餐购买后不会在工作区之间转移,所以买错了工作区就意味着需要重新购买。
每个工作区的席位数软上限为 10 个。如果大客户需要更多席位,这可以与支持团队商议,并非硬性限制。如果客户关系的形态发生变化,也可以申请转移工作区所有权。
该功能本身在介绍 Team Workspaces一文中有详细说明。
选择角色
每个人的角色应保持在其所需的最低权限范围内。
| 角色 | 可以做什么 | 适合分配给 |
|---|---|---|
| Viewer | 查看套餐、流量和发票;浏览产品目录 | 希望查看使用情况的客户相关人员,且仅限其自己的工作区 |
| Billing | Viewer 的所有权限,外加为钱包充值、支付发票、购买或升级套餐 | 持有付款卡的一方,无论哪方 |
| Admin | Billing 的所有权限,外加管理套餐和团队 | 负责采集工作的代理机构客户负责人 |
角色是按工作区设置的,而不是全局的。同一个人可以在一个客户的工作区中是 Admin,而在另一个客户的工作区中是 Viewer,实际生效的角色始终是当前所在工作区中的角色。
按客户跟踪使用情况
每个套餐在面板中都有实时使用情况视图,分别显示在仪表盘总览和套餐自身的页面上,每分钟更新一次。它显示当前周期内剩余的带宽、每日消耗趋势,以及按主机名排列的主要流量目的地。
这三项信息结合起来,足以很好地支撑客户归属工作。
剩余带宽能告诉你某个客户是否能在额度内完成本周期。
每日趋势显示消耗何时发生变化,通常意味着出现了新任务、某个爬虫失控,或者客户在未声明的情况下要求了更大的范围。
按主机名排列的主要目的地是最容易被低估的一项。它能让你确认每个客户的套餐确实在访问该客户的目标站点。如果某个套餐的主要目的地属于另一个客户的竞争对手,那就说明某个任务中用错了凭证。
要在多个客户之间拆分一个套餐,可以为每个客户设置一个子账户:在该客户任务的用户名后直接添加 -subaccount-CLIENT,面板和使用情况 API就会分别报告每个子账户的数据。未加标签发送的流量事后无法拆分,所以在共享套餐上,务必为每个任务加上标签。
每月运营例程
归属管理是一种习惯,而不是只跑一次的报告。
- 每个周期开始时,记录每个套餐的初始额度和周期日期。
- 每周,将每个客户的消耗与预期的消耗速率进行比较,并按“已消耗带宽除以已过天数,再乘以周期总天数”的方式重新预测月末使用量。
- 当趋势出现跳变时,先检查主要目的地,再判断客户的范围是否真的扩大了。
- 在额度用完之前,针对每个客户决定超量是从钱包扣款,还是暂停任务。住宅套餐的超量按该套餐自身的每 GB 费率从钱包中扣款计费。
- 当客户离开时,移除其人员,从所有任务中停用该套餐的凭证,并关闭该套餐。
每周检查背后的预测方法详见住宅代理带宽预测。
凭证是隔离的另一半
工作区让套餐彼此分开。而凭证则需要靠你自己的系统来分开。
每个套餐都有自己独立的凭证。将凭证按客户分别存储在你的密钥管理系统中,让每个客户的任务只使用该客户的套餐,绝不要为了图方便,把一个客户的凭证复制到另一个客户的任务中,因为这正是归属悄悄失效的原因。不要记录完整的代理连接字符串,这是凭证泄露进日志聚合系统最常见的方式。
会话 ID(Session ID)仍然由你自行命名。在前面加上客户代码前缀,比如 sid-acme-serp-01,不会产生额外成本,却能让你自己的日志更易读。面板不会按会话 ID 拆分使用情况,这正是子账户要解决的问题。
常见问题
Shifter 的套餐内部有子用户吗?
套餐内部没有独立的登录账户,但子账户可以按客户拆分套餐的流量:这是代理用户名中的一个标签,面板和 API 会分别报告。访问权限按工作区管理,共有三种角色,而客户之间的完全隔离则来自各自独立的套餐,以及在需要时独立的工作区。
一个代理机构登录账户能管理多少个客户?
一个登录账户可以属于任意数量的工作区,并通过侧边栏在它们之间切换。10 个席位的软上限是按工作区计算的,而不是按登录账户计算的。
客户能看到我们的其他客户吗?
跨工作区不能。但在同一个工作区内,每个成员都能看到所有内容,这正是为什么客户联系人只应被邀请进入他们自己的工作区。
我能把一个套餐从一个客户转移到另一个客户吗?
套餐会保留在购买时所在的工作区中。从一开始就应在对应客户的工作区中为其购买套餐。
结论
在 Shifter 上,工作区负责分隔访问权限和计费,而子账户则负责在套餐内部拆分流量。为每个客户配置独立的套餐或独立的子账户,在客户希望自行计费时采用客户拥有的工作区,在你进行转售时采用共享的代理机构工作区,让客户联系人远离共享工作区,并每周而非仅在开票时查看每个客户的使用情况。
按这种方式搭建结构后,隔离、归属、访问控制和下线流程都会自然而然地实现。该产品详见面向代理机构的住宅代理页面,费率见定价页面。