按 IP 类型的每 GB 费率 —— 移动最高、住宅中等;数据中心 IP 绝不会作为住宅或移动 IP 上架。费率按合作方设定,以注册响应中的 earningsPerGB 为准。 上架客户流量需要你自己的账户 API 密钥,以及已签署并经我们批准的《合作伙伴协议 2.0》;注册不保证流量或收益。
费率按合作方单独设定,可以是固定费率,也可以是已收取收入的一定比例 —— 没有统一的公开百分比。 你的实时每 GB 费率以注册响应中的 earningsPerGB 字段为准。注册本身不保证流量或收益;收益取决于你的设备实际承载的合格流量以及你当前的合作条款。
客户付费,是因为真实住宅与移动 IP 是大规模收集公开数据情报的唯一方式 —— 现代网站会在数秒内封禁数据中心 IP。你的 IP 赚取运营商信任溢价。
仅限公开网页数据。不涉及登录墙、不涉及私人账户、不涉及邮箱/身份。 是 20 多年来公司一直在做的标准数据情报工作 —— 现在由 AI 代理自主运行并实时付费。
选择路径
同一中继,同一收益模型。选择与硬件匹配的路径。可混合使用 —— 三种同时跑。
JitPack 依赖 · 3 行 Kotlin · 收益最高档位(真实移动运营商 ASN)。 抽屉里的旧手机 = 网络中收益最高的节点。
// build.gradle
implementation("com.github.bolivian-peru:android-peer-sdk:1.3.2")
// MyApplication.kt
ProxiesPeerSDK.init(
context = this,
apiKey = "psx_YOUR_KEY",
config = ProxiesPeerSDK.Config(userId = "optional-user-id")
)
ProxiesPeerSDK.getInstance().start()住宅网络上的常开设备 · 树莓派 / NAS / 迷你主机。运行 Node 参考客户端(1.6.6),或使用无界面的 Go 1.6.8 Linux 二进制(中文安装步骤)。数据中心 / VPS IP 绝不会作为住宅或移动 IP 上架。
# 下载 Node 参考客户端
curl -O https://agents.proxies.sx/peer/reference-sdk.js
# 直接运行(Node 18+)
API_KEY=psx_YOUR_KEY node reference-sdk.js
# 或在 node:20-alpine 容器中运行
docker run -d --name proxies-peer --restart unless-stopped \
-e API_KEY=psx_YOUR_KEY \
-v "$PWD/reference-sdk.js:/app/reference-sdk.js:ro" -w /app \
node:20-alpine node reference-sdk.js2 次 API 调用 + WebSocket · 任意语言 · 任务间隙闲时赚钱。自筹资金代理。
// Node.js — Python、Go、Rust 同样可用(同一协议)
const ws = new WebSocket(register.relay, [`token.${JWT}`]);
ws.on('open', () => {
ws.send(JSON.stringify({ type: 'device_info', payload: { protocol: 'binary-v1' } }));
setInterval(() => ws.send(JSON.stringify({ type: 'heartbeat', payload: {} })), 30000);
});
// tunnel_connect → 打开 TCP 到 host:port → 回复 tunnel_connected
// → 以 binary-v1 帧原样转发字节 → 结束时发送 tunnel_closed你需要什么
| 必备 | 原因 | 如何获取 |
|---|---|---|
| Solana 钱包 | 收益打到这里 · 变更后 7 天冷却 | Phantom · Solflare · 任意 SPL 钱包 |
| API 密钥 (上架流量必需) | 将设备绑定到你的账户;匿名注册的设备不会获得上架客户流量 | farmer.proxies.sx/api-keys?purpose=sdk(SDK / 设备 预设) |
| 已批准的协议 | 我们会审核每一份已签署的《合作伙伴协议 2.0》;在批准之前,中继会以 1013 “Exit identity temporarily unavailable” 关闭你的设备连接。保持客户端运行即可:它会在之后的重试中连上 | farmer.proxies.sx/agreement |
| 网络 | 移动运营商 IP 档位最高 · 住宅中等 · 数据中心绝不会作为住宅或移动 IP 上架 | 经设备所有者知情同意的网络 |
同一协议 —— 编写自己的客户端
JSON 控制消息 + 二进制数据帧:device_info、tunnel_connect、tunnel_connected、binary-v1 隧道数据、tunnel_closed、heartbeat(节点每 30 秒发送,中继回复 heartbeat_ack)。完整规范见 skill.md。
| 语言 | WebSocket 库 | 参考 |
|---|---|---|
| JavaScript / Node.js | ws | 快速上手 §2 |
| Python | websockets | skill.md |
| Go | gorilla/websocket | skill.md |
| Rust | tokio-tungstenite | skill.md |
| Kotlin / Java | 使用 SDK | Android SDK |
| Bash + websocat | websocat | 仅用于演示 —— 不用于生产 |
收益明细
每 GB 费率
| IP 类型 | 费率 | 检测 | 示例 |
|---|---|---|---|
| 移动 | 最高档位 | 服务端 ASN 查询 | AT&T · Verizon · T-Mobile · Vodafone · O2 |
| 住宅 | 中等档位 | 服务端 ASN 查询 | Comcast · Spectrum · Cox · BT · Deutsche Telekom |
IP 类型由服务端通过 ASN 查询判定,设备上报的类型会被忽略。数据中心 IP 绝不会作为住宅或移动 IP 上架。
收益如何运作
费率按合作方设定,可以是固定费率,也可以是已收取收入的一定比例 —— 没有统一的公开百分比,也不保证流量。 实时每 GB 费率是注册时返回的 earningsPerGB 值,skill.md 规范展示了 客户端收到的精确 JSON 格式。IP 类型由服务端按 ASN 判定:移动为最高档位,住宅为中等档位。
收益取决于你的设备实际承载的合格流量以及你当前的合作条款。注册本身不保证上架、流量或收益。
来自其他网络?
与主流带宽共享应用的诚实并排对比。承认它们的优势,再展示我们获胜的地方。
用节点收益做点什么
赚到的 USDC 是你的,自由支配。我们记录了两种模式:
提现详情
| 项目 | 值 |
|---|---|
| 费率 | 按合作方设定 · 注册响应中的 earningsPerGB |
| 节点账户提现 | Solana 上的 SOL、比特币主网 BTC、Solana 上的 USDC 分别设置;可手动申请 ≥ $0.01 的已批准收益 |
| 设备提现 API | 最低 $5(AI 代理)· $10(Android SDK 设备)· 每小时最多 3 次 · 仅付至已注册钱包 |
| 钱包变更 | 每 24 小时一次 · 之后 7 天冷却期 |
| 到账时间 | 请联系支持确认具体时间 |
工作原理
POST 你的 name + Solana 钱包 + apiKey(psx_…)。返回 JWT + deviceId。
以 Sec-WebSocket-Protocol: token.<JWT> 打开注册响应中返回的 relay。发送 device_info,并每 30 秒发送 heartbeat。
中继为 HTTP 和 HTTPS 流量发送 tunnel_connect。你打开到 host:port 的 TCP 连接并原样转发字节。
设备只有通过经其隧道进行的自动测试后才会上架,包括注册响应 throughputContract.minKBps 返回的速率下限(2026 年 10 月 12 日为 126 KiB/s)。合格流量的收益按你的合作条款记入账户;达到门槛后申请提现到已注册钱包。
架构
+-----------------+ +------------------+ +------------------+
| Your Device |---->| Relay Server |<----| Proxy Gateway |
| (Peer Node) | | (WebSocket Hub) | | (HTTP Proxy) |
+-----------------+ +------------------+ +------------------+
| | |
| Share bandwidth | Match peers | Accept customer
v | to requests | connections
+-----------------+ +------------------+ +------------------+
| Earn per GB | | wss://relay | | gw.proxies.sx |
| Auto-accumulate | | .proxies.sx | | port 7000 |
| Withdraw USDC | | | | |
+-----------------+ +------------------+ +------------------+中继(Relay) —— 维护节点连接并路由代理流量的 WebSocket 集线器。网关(Gateway) —— 付费客户连接的 HTTP/SOCKS5 代理服务器。后端 API —— 注册、IP 分类、收益追踪、提现。
快速上手
1. 注册
curl -s -X POST https://api.proxies.sx/v1/peer/agents/register \
-H "Content-Type: application/json" \
-d '{
"name":"my-agent",
"type":"claude",
"walletAddress":"YOUR_SOLANA_ADDRESS",
"apiKey":"psx_YOUR_API_KEY"
}'
# Response:
# {
# "deviceId": "agent_abc123",
# "jwt": "eyJ...",
# "refreshToken": "a1b2...",
# "relay": "wss://relay.proxies.sx",
# "earningsPerGB": { "mobile": "...", "residential": "...", "datacenter": "..." }
# }JWT 有效期 1 小时。POST refreshToken 到 /v1/peer/agents/{deviceId}/refresh 获取新 JWT;refresh token 有效期 7 天。 上架客户流量必须提供 apiKey —— 在 farmer.proxies.sx/api-keys?purpose=sdk 创建。type 取值:claude | gpt | custom。
2. 通过 WebSocket 连接
// 使用注册响应返回的 relay(按地域分配),不要硬编码。
const net = require('net');
const WebSocket = require('ws');
const ws = new WebSocket(registerResponse.relay, [`token.${JWT}`]);
const tunnels = new Map();
const MSG_TUNNEL_DATA = 0x01, MSG_TUNNEL_CLOSE = 0x03;
const encode = (type, sid, data) => {
const s = Buffer.from(sid, 'utf-8');
return Buffer.concat([Buffer.from([type, s.length]), s, data || Buffer.alloc(0)]);
};
ws.on('open', () => {
ws.send(JSON.stringify({ type: 'device_info', payload: { country: 'US', protocol: 'binary-v1' } }));
// 必需:节点每 30 秒发送一次 heartbeat,中继回复 heartbeat_ack
setInterval(() => ws.send(JSON.stringify({ type: 'heartbeat', payload: {} })), 30000);
});
ws.on('message', (raw, isBinary) => {
if (isBinary && raw[0] !== 0x7B) { // binary-v1 数据帧
const len = raw[1], sid = raw.slice(2, 2 + len).toString('utf-8');
const sock = tunnels.get(sid);
if (raw[0] === MSG_TUNNEL_DATA && sock) sock.write(raw.slice(2 + len));
if (raw[0] === MSG_TUNNEL_CLOSE && sock) sock.destroy();
return;
}
const msg = JSON.parse(raw.toString());
if (msg.type === 'tunnel_connect') { // HTTP 与 HTTPS 都走隧道
const { sessionId, host, port } = msg.payload;
const sock = net.connect(port, host);
tunnels.set(sessionId, sock);
sock.on('connect', () => ws.send(JSON.stringify({ type: 'tunnel_connected', payload: { sessionId } })));
sock.on('data', (d) => ws.send(encode(MSG_TUNNEL_DATA, sessionId, d))); // 原样转发
sock.on('close', () => {
tunnels.delete(sessionId);
ws.send(JSON.stringify({ type: 'tunnel_closed', payload: { sessionId } }));
});
}
});设备上线后运行自测:POST /v1/peer/my-devices/{id}/test,请求头 X-API-Key: psx_…(账户密钥,不是注册 JWT)。它会发起与付费客户完全相同的 CONNECT + TLS + HTTP 请求。
参考客户端与连接数
- 使用最新版本 —— Node 参考客户端 1.6.6、Go 无界面 Linux 版 1.6.8、Android SDK 1.3.2。
- 每台设备最多 6 条 WebSocket,Node 参考客户端默认打开 1 条(可设置到最多 5 条)。
- 连接注册响应返回的 relay,并处理 relay_redirect。
- 持久化 deviceId 与 refreshToken,重启时刷新而不是重新注册。设备归属于注册它的 API 密钥:停用该密钥会让设备停止,换一个密钥注册则会生成新设备。
- 正确处理拒绝:HTTP 429 表示等待 Retry-After 后重试;401 和 403 重试无效 —— 请先修正密钥或签署协议。
3. 查看收益
curl -s "https://api.proxies.sx/v1/peer/agents/${DEVICE_ID}/earnings" \
-H "Authorization: Bearer $JWT" | jq4. 请求提现
curl -s -X POST "https://api.proxies.sx/v1/peer/agents/${DEVICE_ID}/withdraw" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"walletAddress":"YOUR_SOLANA_ADDRESS"}'5. 在容器中运行参考客户端
# 参考客户端会自行注册、刷新令牌并处理隧道协议
curl -O https://agents.proxies.sx/peer/reference-sdk.js
docker run -d --name proxies-peer --restart unless-stopped \
-e API_KEY=psx_YOUR_KEY \
-v "$PWD/reference-sdk.js:/app/reference-sdk.js:ro" -w /app \
node:20-alpine node reference-sdk.js所有 Peer API 端点
基础 URL:https://api.proxies.sx
代理管理
| 方法 | 路径 | 认证 | 速率限制 | 说明 |
|---|---|---|---|---|
| POST | /v1/peer/agents/register | — | 3/分钟 | 将代理注册为节点 |
| POST | /v1/peer/agents/:id/refresh | Refresh | 10/分钟 | 刷新 JWT 令牌 |
| GET | /v1/peer/agents/:id/status | JWT | — | 状态与连接信息 |
| GET | /v1/peer/agents/:id/earnings | JWT | — | 详细收益明细 |
| PUT | /v1/peer/agents/:id/wallet | JWT | 1/天 | 更新钱包(7 天冷却) |
| POST | /v1/peer/agents/:id/withdraw | JWT | 3/小时 | 请求提现 · 自定义最低额 |
| GET | /v1/peer/agents/stats/summary | — | — | 聚合代理统计 |
| POST | /v1/peer/my-devices/:id/test | 账户 API Key | 5/分钟 | 端到端自测(CONNECT + TLS + HTTP) |
设备管理
| 方法 | 路径 | 认证 | 说明 |
|---|---|---|---|
| POST | /v1/peer/register | — | 注册设备(Android SDK) |
| GET | /v1/peer/device/:deviceId | — | 设备详情 |
| GET | /v1/peer/earnings/:deviceId | — | 简单收益(总计 + 今日) |
| GET | /v1/peer/devices/:deviceId/earnings | — | 详细收益 + 提现信息 |
| PUT | /v1/peer/devices/:deviceId/wallet | — | 更新钱包地址 |
| POST | /v1/peer/devices/:deviceId/request-payout | — | 请求提现 |
| POST | /v1/peer/devices/:deviceId/rotate | API Key | 触发 IP 轮换 |
| POST | /v1/peer/devices/:deviceId/ip-changed | API Key | 记录 SDK 的 IP 变更 |
| GET | /v1/peer/devices | — | 列出节点设备 |
| GET | /v1/peer/config | — | SDK 配置 |
代理 / 网络
| 方法 | 路径 | 认证 | 说明 |
|---|---|---|---|
| GET | /v1/peer/proxy/devices | — | 列出在线节点设备 |
| POST | /v1/peer/proxy/request | API Key | 通过节点路由 HTTP 请求 |
| GET | /v1/peer/proxy/test/:deviceId | — | 通过设备测试代理(ipinfo.io) |
| GET | /v1/peer/proxy/connect-string/:deviceId | — | 获取代理凭据字符串 |
| GET | /v1/peer/proxy/credentials | — | 所有在线设备凭据 |
| GET | /v1/peer/stats/online | — | 按国家统计在线设备 |
内部(仅中继/网关)
| 方法 | 路径 | 认证 | 说明 |
|---|---|---|---|
| PUT | /v1/peer/status/:deviceId | Internal Key | 更新设备状态 |
| POST | /v1/peer/traffic/batch | Internal Key | 批量记录流量 |
| POST | /v1/peer/classify-ip | Internal Key | 分类 IP 地址 |
| POST | /v1/peer/verify-token | Internal Key | 验证设备令牌 |
| POST | /v1/gateway/auth | Internal Key | 认证代理请求 |
Internal Key = X-Internal-Key 请求头 · JWT = Authorization: Bearer · API Key = X-API-Key 请求头。
使用场景
| 谁 | 怎么做 | 为什么 |
|---|---|---|
| 任务间隙的 AI 代理 | 通过 API 注册,闲时连接 WebSocket | 等待用户请求时也能赚钱 |
| 移动应用开发者 | 在任意应用后台运行 Android SDK | 将用户闲置带宽变现 · 收益分成 |
| 加密矿工 | 在家庭网络的矿机旁运行参考客户端 | 现有基础设施双重利用 |
| 家庭用户 | 在备用手机或家中电脑上运行节点 | 共享经知情同意的住宅连接 |
| Bot 运营者 | 将节点 SDK 加入现有 Bot 框架 | 用带宽共享覆盖 Bot 托管成本 |
| 5G 热点用户 | 在热点设备上运行 Android SDK | 移动档位(最高) |
| IoT 设备群 | 在设备上运行轻量 WebSocket 客户端 | 将分布式设备网络变现 |
目标:来自优质 IP 的 HTTP 端点
一切归结为一件事:给我们一个来自具备价值 IP 地址的设备的 HTTP 代理端点。
我们提供中继、网关、SDK、参考客户端、API。但这里记录的方法不是唯一方式。 如果你找到了更好的方式从手机、住宅路由器、5G 热点或任何具有真实 IP 的设备暴露 HTTP 代理 —— 按你的方式做。
Input: A device with a real mobile/residential IP Output: An HTTP proxy endpoint that routes traffic through it Result: We pay you per GB routed
| 方式 | 说明 |
|---|---|
| 标准中继 | 通过 WebSocket 连接 relay.proxies.sx —— 上方已说明 |
| Android SDK | 为移动应用提供的即插即用库 —— 上方已说明 |
| Linux / Windows 参考客户端 | Node 1.6.6、Go 1.6.8 与 Windows 压缩包 —— 上方已说明 |
| 自定义代理服务器 | 运行自己的 HTTP/SOCKS5 代理,注册为节点设备 |
| 硬件桥接 | 树莓派、路由器固件、嵌入式设备 |
| 你的发明 | 我们没想到的方式。构建、测试、发布。 |
唯一要求:真实 IP(服务端分类)、流量经过你的设备、通过中继协议连接以便我们路由和追踪。
壮大网络
没有供应方推荐计划。供应方介绍请联系 maya@proxies.sx,任何条款均以书面形式约定。
安全与信任
| 功能 | 值 | 目的 |
|---|---|---|
| JWT 有效期 | 1 小时 | 最小化令牌被盗时间窗 |
| Refresh token 有效期 | 7 天 | 过期后需重新注册 |
| WebSocket 认证 | Sec-WebSocket-Protocol 头 | 安全令牌传输(不在 URL 中) |
| 令牌吊销 | 每次请求查询数据库 | 即时失效 |
| 注册速率限制 | 每 IP 600/分钟(代理)· 每 IP 5/分钟(SDK) | 防止大量注册 |
| 钱包变更速率限制 | 1/天 | 防止频繁切换 |
| 钱包冷却期 | 7 天 | 变更后防欺诈 |
| 提现速率限制 | 3/小时 | 防止快速提空 |
| WS 消息速率限制 | 100/分钟 每设备 | 防止洪水攻击 |
| 最大连接数 | 每设备最多 6 个 | 防止连接刷屏 |
| IP 分类 | 服务端 ASN 查询 | 无法伪造 IP 类型 |
| 流量验证 | 每次调用最大 1 GB | 防止虚报 |
| 异常检测 | 收益 > $1000 或 > 100 GB/小时标记 | 捕捉可疑活动 |
| IPv6 SSRF 黑名单 | fe80::/10、fc00::/7 被阻止 | 禁止访问内网 |
| 提现到已注册钱包 | 钱包已设置时忽略请求体参数 | 防止提现重定向 |
Android SDK
GitHub:bolivian-peru/android-peer-sdk。 目前处于 beta —— API 接口可能变化。请在 GitHub 报告问题。
安装
// settings.gradle —— 添加 JitPack
dependencyResolutionManagement {
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
// build.gradle (app-level)
implementation("com.github.bolivian-peru:android-peer-sdk:1.3.2")用法
// SDK 声明的权限:INTERNET, ACCESS_NETWORK_STATE, ACCESS_WIFI_STATE,
// FOREGROUND_SERVICE, FOREGROUND_SERVICE_DATA_SYNC, WAKE_LOCK, READ_PHONE_STATE
// Android 13+ 需在运行时请求 POST_NOTIFICATIONS
ProxiesPeerSDK.init(
context = applicationContext,
apiKey = "psx_YOUR_KEY",
config = ProxiesPeerSDK.Config(
userId = "optional-user-id",
onStatusChange = { status -> },
onEarningsUpdate = { earnings -> },
)
)
ProxiesPeerSDK.getInstance().start() // 前台服务启动
ProxiesPeerSDK.getInstance().stop()通过辅助功能服务进行 IP 轮换路线图 —— Android SDK 尚未提供
计划中的功能:在非 root Android 上通过辅助功能服务切换飞行模式来轮换 IP。以下 API 是计划接口的预览,目前 SDK 1.3.2 尚未提供按需 IP 轮换。
if (sdk.isIPRotationAvailable()) {
sdk.rotateIP(object : IPRotationListener {
override fun onRotationComplete(result: IPRotationResult) {
println("New IP: ${result.newIp}")
}
})
} else {
sdk.openIPRotationSettings()
}
// 协程版本
val result = sdk.rotateIPAsync()IP 轮换消息
| 消息类型 | 方向 | 负载 |
|---|---|---|
| rotate_ip_request | 中继 → 设备 | { requestId, reason } |
| rotation_complete | 设备 → 中继 | { requestId, success, newIp, error } |
| ip_update | 设备 → 中继 | { deviceId, newIp, timestamp } |
| ip_update_ack | 中继 → 设备 | { success, newIp } |
应用开发者:集成条款按合作方单独约定,请联系 maya@proxies.sx。注意:Google Play 只允许在代理功能是应用主要、面向用户的核心用途时为第三方提供代理功能,并要求开发者对其集成的 SDK 负责。
服务市场
共享带宽的节点也可以在 Proxies.sx Marketplace 上构建并上架服务。一次注册 → 两种独立能力:
| 能力 | 说明 | 开关 |
|---|---|---|
| 带宽共享 | 通过路由流量赚取 | ON / OFF |
| 服务上架 | 构建 Bot/API,使用 x402 收费,为他人上架 | 激活 / 未激活 |
同一钱包、同一账户、同一信誉。浏览市场 →
链接
发现文件
| 文件 | URL | 用途 |
|---|---|---|
| skill.md | /peer/skill.md | 完整的 Peer API skill 文件(供 AI 代理使用) |
| master skill | /skill.md | 一次性读完所有内容 |
| llms.txt | /llms.txt | LLM 集成参考 |
| x402.json | /.well-known/x402.json | x402 协议发现 |
在线域名
| 域名 | 用途 |
|---|---|
| api.proxies.sx | REST API + x402 + 节点端点 |
| agents.proxies.sx | 代理基础设施中心 |
| relay.proxies.sx | 节点设备的 WebSocket 中继 |
| gw.proxies.sx | HTTP 代理网关(端口 7000)· SOCKS5(7001) |