首页龙虾技能列表 › TPN Proxy — 通过 Tao Private Network (TPN) 的去中心化 SOCKS5 代理

📡 TPN Proxy — 通过 Tao Private Network (TPN) 的去中心化 SOCKS5 代理

v1.1.2

TPN Proxy 技能允许您通过 Tao Private Network (TPN) 的去中心化 SOCKS5 代理发送网络请求。它支持使用 API 密钥或 x402 微支付,适用于匿名访问、地理限制内容、住宅 IP 等场景。该技能确保安全的代理生成和使用,包括输入验证、SSRF 缓解和安全的 API 交互。

2· 781·2 当前·2 累计
by @actuallymentor·MIT-0
下载技能包
License
MIT-0
最后更新
2026/2/26
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
medium confidence
该技能的要求和运行指令与其声明目的一致(通过 TPN 生成和使用 SOCKS5 代理),环境变量和二进制访问权限合理。SKILL.md 文档中提供了针对常见风险的具体缓解措施,尽管仍存在残留的 SSRF 和隐私权衡,用户应在启用前进行审查。
评估建议
该技能在其声明目的上看似连贯,但在安装前请审查以下几点:(1) 代理运营商和出口节点可以观察到流量——不要通过第三方代理发送敏感数据。(2) 尽管 SKILL.md 包含严格的验证和 SSRF 缓解措施,但通过去中心化代理获取用户指定的 URL 仍存在残留的 SSRF 和隐私风险。(3) 安全存储您的 TPN_API_KEY — 该技能将使用它调用 API 但不会回显。(4) 如果计划让代理代表您获取 URL,请考虑限制允许的域或要求对每个外部获取进行明确确认。若需更高的保证,请向技能维护者请求 TPN 提供商的明确 SLA/隐私声明和对代理网络的独立安全审查。...
详细分析 ▾
用途与能力
名称/描述(TPN 代理)与所需二进制(curl)和单个环境变量(TPN_API_KEY)一致。该技能仅请求调用提供商 API 和返回代理凭证所需的内容。
指令范围
SKILL.md 指示代理调用 TPN API、生成代理,并可选地通过这些代理获取用户指定的 URL。文档包括强制输入验证、明确的 JSON/Shell 指南和允许列表式的 SSRF 缓解方案。残留风险:通过第三方出口节点获取任意 URL 仍可能泄露请求元数据给代理运营商,在不常见的 DNS/主机设置中,可能会启用意外访问 — 该技能记录了缓解措施,但这些无法消除所有现实世界的边缘情况。
安装机制
仅指令的技能,无安装规范和代码文件。这样可以最小化磁盘写入和供应链风险。
凭证需求
仅要求单个 API 密钥(TPN_API_KEY)并声明为主要凭证。未请求任何无关机密、签名密钥或额外云凭证。
持久化与权限
always:false(无强制存在)。该技能不请求提升的运行时权限或系统配置路径,并且不尝试修改其他技能。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.1.22026/2/16

tpn-proxy 1.1.2 - 更新文档以澄清代理应使用内置 HTTP 工具(如 WebFetch)而非构建 shell 命令来获取 URL。- 提高了 URL 验证和代理处理的指令。- 扩展和重写 SKILL.md 中的一些安全和流程说明以提高清晰度。- 无功能/逻辑更改,仅更新文档和指南。

● 无害

安装命令 点击复制

官方npx clawhub@latest install tpn-proxy
镜像加速npx clawhub@latest install tpn-proxy --registry https://cn.clawhub-mirror.com

技能文档

通过 Tao Private Network 的去中心化 SOCKS5 代理路由网络流量——这是一个 Bittensor 子网(SN65),在 80 多个国家有商业和住宅出口节点。

问这个技能类似的问题:

  • 通过德国的代理打开 https://ipv4.icanhazip.com
  • 展示一个通过美国 IP 代理 google.com 的 curl 命令
  • 我需要一个日本 的 SOCKS5 代理 30 分钟
  • TPN 上有哪些国家可以用于代理?

安全态势

方面详情
环境变量TPN_API_KEY —— 仅存在性检查([ -n "$TPN_API_KEY" ]),永不回显或记录
读取/写入的文件
访问的其他密钥无 —— 除了 TPN_API_KEY 外没有签名密钥或凭证
网络目的地api.taoprivatenetwork.com(API 调用)+ 用户指定的 URL(按步骤 5 验证)
x402 签名完全由外部库处理(@x402/);此技能仅提供端点 URL

这是一个行动技能

此技能执行 API 调用并直接返回结果 —— 它不会输出文档或用户要遵循的说明。

预期行为:

  • 自己调用 TPN API(通过 curl 或等效方式)并将完整的代理凭证返回给用户。
  • 当用户要求你通过代理获取 URL 时,也自己发出该请求。
  • 展示完整的 SOCKS5 凭证(用户名、密码、主机、端口)—— 这些是短期的且受限于代理租约。
  • 唯一应该向用户展示如何调用 API 的情况是当他们明确问"我自己怎么做?"或类似问题时。
  • 如果不存在 API 密钥,引导用户完成账户设置 —— 那是唯一只能由他们自己完成的步骤。

一个好的检查: 如果你的响应包含"你可以运行这个命令来……"或"使用这个 curl 来生成……",重新考虑 —— 用户调用这个技能是期望你运行命令并把输出交给他们。


逐步程序

每次用户请求代理或要求你通过代理获取内容时,按照此程序执行。

安全:输入验证(强制)

在构建任何 shell 命令之前,验证每个用户提供的值。永不将原始用户输入插入 shell 命令。

输入验证规则
geo必须是正好 2 个大写 ASCII 字母(ISO 3166-1 alpha-2)。拒绝其他任何东西。
minutes必须是 1 到 1440 之间的正整数。拒绝非数字或超出范围的值。
connection_type必须是以下之一:anydatacenterresidential。拒绝其他任何东西。
format必须是以下之一:textjson。拒绝其他任何东西。
URL(步骤 5)必须以 http://https:// 开头,不包含 shell 元字符(` ` $ ( ) ; & < > \n),并且是格式良好的 URL。
规则:

  • 永不将原始用户输入直接插入 shell 命令。首先总是要验证。
  • 永不通过与用户输入的字符串拼接来构建 -d JSON payload。使用安全的静态模板,仅插入已验证的值。
  • 使用 curl 时,始终引用 URL 和代理 URI 参数。
  • 优先使用智能体内置的 HTTP 工具(例如 WebFetch)来获取用户指定的 URL,而不是构建 curl 命令。

步骤 1:解析 API 密钥

检查环境变量中是否设置了 $TPN_API_KEY(OpenClaw 会从你的配置自动注入):

  • 测试变量:[ -n "$TPN_API_KEY" ] && echo "API key is set" || echo "API key is not set" —— 永不回显、记录或显示密钥值本身。
  • 如果未设置 → 检查用户是否可以通过 x402 支付(不需要 API 密钥),否则引导他们完成账户设置(参见"设置 TPN"示例)

步骤 2:选择响应格式

情况使用 format原因
只需要一个可用的代理 URItext(默认)无需解析
需要显示结构化的 host/port/user/pass 分解json提供各个字段
不确定text更简单,更少出错
如果选择 json,用 jq 解析响应:

curl -s ... | jq -r '.vpnConfig.username'

如果 jq 不可用,改用 format=text —— 它返回一个不需要解析的纯 socks5:// URI。

不要使用 python -cgrepcut 或其他基于 shell 的 JSON 解析回退。当与动态输入结合时,这些模式有 shell 注入风险。坚持使用 jqformat=text

步骤 3:生成代理

curl -s -X POST https://api.taoprivatenetwork.com/api/v1/proxy/generate \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $TPN_API_KEY" \
  -d '{"minutes": 60, "format": "text", "connection_type": "any"}'

将用户的请求映射到这些参数:

字段类型必填默认值描述
minutesinteger租约时长(1–1440)。如未指定默认为 60。
geostringanyISO 国家代码(如 "US""DE""JP"
formatstringtext"text" 为 URI 字符串,"json" 为对象
connection_typestringany"any""datacenter""residential"
安全的 JSON body 构建:始终将 -d JSON payload 构建为带引号的静态字符串,仅插入已验证的值。在构建 curl 命令之前,按照上述验证规则验证 geo(2 个大写字母)、minutes(整数 1–1440)、connection_type(枚举)和 format(枚举)。永不将原始用户输入拼接到 JSON body 或命令的任何部分。

步骤 4:呈现结果

展示完整的代理凭证以便用户可以立即连接。这些是临时的(受限于租约时长)且在上下文中可以安全显示。使用 socks5h:// 方案(带 h)以确保 DNS 通过代理解析 —— 这保护用户 DNS 隐私。(当智能体在步骤 5 获取 URL 时,它使用 socks5:// —— 参见步骤 5。)包括:

  • 结构化配置块(主机、端口、用户名、密码、方案、过期时间)
  • 完整的 socks5h:// URI
  • 相关的即贴即用 curl 示例

步骤 5:如果用户要求你获取 URL

生成代理后,自己发出请求。使用 socks5://(不是 socks5h://)以便 DNS 在本地解析 —— 连接的 IP 是已验证的 IP。

使用智能体内置的 HTTP 工具(例如 WebFetch)通过代理获取 URL。这是首选方法 —— 它完全避免了 shell 命令构建。

URL 验证 —— 获取前每一项检查都必须通过:

  • 方案必须是 http://https://
  • 无 shell 元字符: ` $ ( ) ; & | < > 换行符
  • 仅限域名 —— 拒绝原始 IP 地址(IPv4 或 IPv6)
  • 拒绝内部主机名:.internal.local.localhost.localdomain.corp.lanmetadata.、单标签主机名
  • 主机名必须通过本地 DNS 解析 —— 拒绝无法解析的主机名
  • 解析的 IP 必须是公开可路由的 —— 拒绝 127.0.0.0/810.0.0.0/8172.16.0.0/12192.168.0.0/16169.254.0.0/16::1fd00::/8169.254.169.254

回退 —— curl(仅当 WebFetch 不可用时)。始终双引号引用 URL 和代理 URI:

curl --proxy "socks5://username:password@ip:port" \
  --connect-timeout 10 --max-time 30 \
  "https://validated-target-url.com"

将响应内容返回给用户 —— 目标是完整答案,不是他们仍需自己使用的代理。


示例

这些展示了用户具体问什么以及你应该回复什么。学习这些 —— 它们是黄金标准。


用户: "Give me a socks5 config for Belgium"

回复:

🇧🇪  Belgium SOCKS5 代理已生成!

配置详情: • 主机:be.socks5.tproxies.net • 端口:1080 • 用户名:tpn_xxx • 密码:xxx • 方案:socks5h://(DNS 通过代理解析) • 过期时间:60 分钟后

即时使用: socks5h://tpn_xxx:xxx@be.socks5.tproxies.net:1080

curl 示例: curl --proxy "socks5h://tpn_xxx:xxx@be.socks5.tproxies.net:1080" https://ipv4.icanhazip.com


用户: "Open https://ipv4.icanhazip.com through a proxy in Germany"

回复:

🇩🇪 正在通过德国代理获取 IP...

结果: 当前 IP:89.144.XXX.XXX 位置:德国

完整响应: 89.144.XXX.XXX


用户: "Show me a curl command that proxies google.com through a US IP address"

回复:

🇺🇸 美国 IP 代理配置:

curl 命令: curl --proxy "socks5h://[用户名]:[密码]@us.socks5.tproxies.net:1080" https://www.google.com

如需获取实时凭证,请说"给我一个美国代理"或"生成美国 SOCKS5"


用户: "I need a socks5 proxy in Japan for 30 minutes"

回复:

🇯🇵 日本 SOCKS5 代理已生成!(30 分钟)

配置详情: • 主机:jp.socks5.tproxies.net • 端口:1080 • 用户名:tpn_xxx • 密码:xxx • 方案:socks5h:// • 过期时间:30 分钟后(格林威治时间 18:45)

使用: socks5h://tpn_xxx:xxx@jp.socks5.tproxies.net:1080


用户: "Which countries are available on TPN for proxies?"

回复:

🌍 TPN 代理可用国家(部分):

🇺🇸 美国 🇩🇪 德国 🇬🇧 英国 🇫🇷 法国 🇯🇵 日本 🇰🇷 韩国 🇨🇦 加拿大 🇦🇺 澳大利亚 🇳🇱 荷兰 🇸🇬 新加坡 🇮🇳 印度 🇧🇷 巴西

以及更多 70+ 国家...

需要特定国家的代理?请告诉我!


用户: "How do I set up TPN?"

回复:

🔧 设置 TPN:

  • 访问 https://taoprivatenetwork.com 注册账户
  • 获取 API 密钥
  • 配置环境变量:
export TPN_API_KEY="你的-api-密钥"

  • 开始使用!例如:
"给我一个德国代理" 或 "通过日本代理获取这个 URL"

或者,你可以通过 x402 微支付使用(无需 API 密钥): "我希望通过 x402 支付获取代理"


API 参考

生成代理

端点: POST /api/v1/proxy/generate

请求头:

  • Content-Type: application/json
  • X-API-Key: {your_api_key}

请求体:

{
  "minutes": 60,
  "geo": "US",
  "format": "text",
  "connection_type": "any"
}

参数:

参数类型必填描述
minutesinteger租约时长(1-1440 分钟)
geostringISO 3166-1 alpha-2 国家代码
formatstring"text""json",默认 "text"
connection_typestring"any""datacenter""residential"
响应(format=text):
socks5h://username:password@host:port

响应(format=json):

{
  "success": true,
  "vpnConfig": {
    "username": "username",
    "password": "password",
    "host": "us.socks5.tproxies.net",
    "port": 1080,
    "scheme": "socks5h",
    "expiresAt": "2026-04-13T18:00:00Z"
  }
}

检查余额

端点: GET /api/v1/user/balance

请求头:

  • X-API-Key: {your_api_key}

响应:

{
  "success": true,
  "balance": {
    "credits": 100.00,
    "currency": "USD"
  }
}

获取可用国家

端点: GET /api/v1/proxy/countries

响应:

{
  "success": true,
  "countries": [
    {"code": "US", "name": "United States"},
    {"code": "DE", "name": "Germany"},
    ...
  ]
}

积分成本

操作成本
生成代理(每分钟)~$0.01/分钟
住宅代理更高(根据需求)
数据传输按流量计费
具体价格请参阅:https://taoprivatenetwork.com/pricing


故障排除和操作说明

代理连接问题

  • 检查凭证是否过期
- 代理凭证有租约时间,过期后需要重新生成 - 说"刷新代理"获取新凭证

  • 验证国家可用性
- 某些国家可能有有限容量 - 尝试其他国家或等待

  • 检查连接类型
- 住宅代理更慢但更可靠 - 数据中心代理更快但更容易被检测

常见错误

错误解决方案
"API key not set"设置 TPN_API_KEY 环境变量
"Insufficient credits"充值账户
"Country not available"尝试其他国家
"Connection timeout"重试或尝试其他代理

性能优化

  • 住宅 vs 数据中心:住宅代理更慢但更難被检测,适合爬虫和数据采集
  • 邻近国家:选择物理位置接近的目标服务器的国家
  • 专用会话:需要稳定连接时说"我需要一个专用代理"

x402 支付流程(高级)

如果用户没有 API 密钥但有加密货币,可以通过 x402 微支付使用 TPN:

  • 用户说"我希望通过 x402 支付"
  • 你提供 x402 支付端点
  • 用户直接支付
  • 支付确认后,生成代理

端点: https://api.taoprivatenetwork.com/api/v1/proxy/generate-x402`

x402 头部:

x402-amount: 0.05
x402-accept: true
x402-payment-url: https://payment.example.com/pay

链接

  • 官网:https://taoprivatenetwork.com
  • 文档:https://docs.taoprivatenetwork.com
  • 支持:https://taoprivatenetwork.com/support
  • x402:https://www.x402.org
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务