TTokenySpace
返回 Skills 列表

Vpn Rotator Free

自动轮换VPN服务器IP,支持OpenVPN协议,按请求数或时间间隔切换IP,避免API速率限制,适合数据采集和自动化测试。

#中文
0

安装到 Tokeny(自动)

下载 ZIP
安装"vpn-rotator-free"技能
技能信息:
- 名称: Vpn Rotator Free
- 标识: vpn-rotator-free
- 描述: 自动轮换VPN服务器IP,支持OpenVPN协议,按请求数或时间间隔切换IP,避免API速率限制,适合数据采集和自动化测试。
- 版本: 1.0.0
下载地址:
https://www.tokeny.space/api/skills/vpn-rotator-free/download
继续

复制上方内容到 Tokeny 客户端并在会话中发送即可自动安装;也可直接 下载 ZIP并拖动到技能窗口安装。

SKILL.md

VPN服务器轮换工具(免费版)

概述

本Skill帮助开发者通过自动轮换VPN服务器IP来规避API速率限制。兼容任意OpenVPN协议的VPN服务商,支持按请求数或时间间隔自动切换出口IP。

免费版支持基础VPN连接管理、定时轮换、装饰器与上下文管理器两种调用方式,满足中小规模数据采集需求。

核心能力

能力模块说明免费版支持
VPN连接管理连接/断开/状态查询
IP轮换按请求数或时间间隔切换
装饰器模式@with_vpn_rotation装饰器
上下文管理器with vpn.session()
CLI命令行命令行操作VPN
多服务商支持ProtonVPN/NordVPN/Mullvad是(基础)
按国家过滤仅使用指定国家服务器
连接健康检查自动检测连接状态
自动重连断线自动重连否(专业版)
多VPN并发同时管理多个VPN否(专业版)
负载均衡智能选择最优服务器否(专业版)
失败熔断连续失败自动熔断否(专业版)

核心功能执行

input_params参数进行配置。

输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作

参数配置与调用

config_options参数进行配置。

输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用config_options参数,支持修改/重置/导入操作

结果处理与输出

output_format参数进行配置。

输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志。

  • 执行此能力时使用output_format参数,支持导出/保存/转换操作 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:自动轮换、API、速率限制、OpenVPN、面向数据采集开发、者与自动化测试工、程师的、服务器轮换工具、通过定期切换等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。

使用场景

场景一:API数据采集

某开发者需要采集一个有速率限制的API(每小时100次/IP)。通过本工具每50次请求自动轮换VPN IP,避免触发限制。

场景二:价格监控

某比价系统需要定期采集多个电商网站的价格。不同网站对同一IP的频繁访问会触发反爬,通过轮换VPN IP分散请求来源。

场景三:SEO排名追踪

某SEO工具需要从不同地区查询搜索排名。通过按国家过滤VPN服务器,模拟不同地区的搜索请求。

不适用场景

以下场景VPN轮换工具免费版不适合处理:

  • 逆向工程闭源API
  • API安全渗透测试
  • 非标准协议集成

触发条件

需要API集成、接口对接、Webhook配置、系统连接时使用。不适用于非本工具能力范围的需求。

快速开始

依赖详情

# Linux (Ubuntu/Debian)
sudo apt install openvpn
# ...
# macOS
brew install openvpn
# ...
# Windows
# 从官网下载OpenVPN客户端安装

第二步:配置VPN凭证

# 创建VPN配置目录
mkdir -p ~/.vpn/servers
# ...
# 保存VPN账号密码
echo "your_username" > ~/.vpn/creds.txt
echo "your_password" >> ~/.vpn/creds.txt
chmod 600 ~/.vpn/creds.txt
# ...
# 下载VPN服务器配置文件(.ovpn)到 ~/.vpn/servers/
# ProtonVPN/NordVPN/Mullvad等均提供OpenVPN配置文件

第三步:配置免密sudo

# 允许openvpn和killall免密执行(VPN切换需要root权限)
echo "$USER ALL=(ALL) NOPASSWD: /usr/s(请参考skill目录中的脚本文件), /usr/(请参考skill目录中的脚本文件)" | sudo tee /etc/sudoers.d/openvpn

第四步:使用装饰器自动轮换

from vpn_rotator import with_vpn_rotation
# ...
@with_vpn_rotation(rotate_every=10, delay=1.0)
def scrape(url):
    import requests
    return requests.get(url).json()
# ...
# 自动每10次请求轮换一次IP
for url in urls:
    data = scrape(url)
    print(data)

示例

装饰器参数配置

@with_vpn_rotation(
    rotate_every=10,      # 每10次请求轮换
    delay=1.0,            # 请求间隔1秒
    config_dir=None,      # VPN配置目录(默认~/.vpn/servers)
    creds_file=None,      # 凭证文件(默认~/.vpn/creds.txt)
    country=None,         # 按国家过滤(如"us"仅用美国服务器)
    auto_connect=True,    # 首次请求自动连接
)
def my_function(url):
    return requests.get(url).json()

VPN类直接使用

from vpn_rotator import VPN
# ...
vpn = VPN(
    config_dir="~/.vpn/servers",
    creds_file="~/.vpn/creds.txt",
    rotate_every=10,
    delay=1.0,
    verbose=True
)
# ...
# 手动控制
vpn.connect()
print(vpn.get_ip())      # 当前出口IP
# ...
vpn.rotate()              # 轮换到下一个服务器
print(vpn.get_ip())      # 新的出口IP
# ...
vpn.disconnect()

上下文管理器

from vpn_rotator import VPN
# ...
vpn = VPN()
# ...
with vpn.session():
    # VPN已连接
    for url in urls:
        vpn.before_request()  # 自动处理轮换
        data = requests.get(url).json()

CLI命令行操作

# 连接VPN
python -m vpn_rotator connect
# ...
# 查看状态
python -m vpn_rotator status
# ...
# 轮换IP
python -m vpn_rotator rotate
# ...
# 断开VPN
python -m vpn_rotator disconnect
# ...
# 查看当前IP
python -m vpn_rotator ip

按API激进程度配置

API激进度rotate_everydelay说明
激进(严格限制)52.0s每秒<1请求,5次即轮换
标准101.0s每秒1请求,10次轮换
宽松20-500.5s限制较少,可降低轮换频率

最佳实践

VPN服务商选择建议

服务商服务器数价格推荐场景
ProtonVPN1000+免费/¥4/月起免费试用,付费解锁全部
NordVPN5000+¥3/月起服务器多,性价比高
Mullvad800+¥5/月隐私保护强,支持匿名

连接健康检查

import subprocess
import requests
# ...
def check_vpn_health(vpn):
    """检查VPN连接是否正常"""
    # 检查openvpn进程是否存活
    result = subprocess.run(
        ["pgrep", "openvpn"],
        capture_output=True
    )
    if result.returncode != 0:
        return False, "openvpn进程未运行"
# ...
    # 检查出口IP是否变化
    try:
        ip = requests.get("https://api.ipify.org", timeout=10).text
        if ip == vpn.expected_ip:
            return True, f"连接正常,IP: {ip}"
        else:
            return False, f"IP不匹配,期望: {vpn.expected_ip},实际: {ip}"
    except Exception as e:
        return False, f"IP查询失败: {e}"

错误恢复策略

错误类型原因恢复策略
sudo密码提示未配置免密sudo运行配置脚本或手动添加sudoers
连接失败凭证错误或服务器不可用检查凭证,尝试其他服务器
仍被封锁API封锁了VPN IP段降低rotate_every,增大delay
无.ovpn文件未下载服务器配置从VPN服务商官网下载配置文件
轮换超时服务器连接慢增加连接超时时间,过滤慢速服务器
DNS泄漏DNS未通过VPN使用VPN的DNS服务器

已知限制

  • VPN凭证文件权限设为600(仅所有者可读写)
  • 使用免密sudo时仅授权openvpn和killall命令
  • 定期更换VPN密码
  • 不在代码仓库中提交凭证文件
  • 轮换间隔不宜过短,避免被VPN服务商限制
  • 当前为免费版本,如需完整功能请升级到付费版获取全部能力

常见问题

Q1:提示"sudo: a password is required"怎么办?

A:这是因为未配置免密sudo。运行以下命令配置:

echo "$USER ALL=(ALL) NOPASSWD: /usr/s(请参考skill目录中的脚本文件), /usr/(请参考skill目录中的脚本文件)" | sudo tee /etc/sudoers.d/openvpn

仅授权openvpn和killall两个命令的免密执行,安全性可控。

Q2:连接VPN后仍然被API封锁怎么办?

A:尝试以下策略:(1) 降低rotate_every值(从10改为5);(2) 增大delay(从1秒改为2-3秒);(3) 检查API是否完全封锁了VPN IP段;(4) 更换VPN服务商或使用住宅IP代理。

Q3:如何下载VPN服务器的.ovpn配置文件?

A:从各VPN服务商官网下载:ProtonVPN在账户后台的Downloads页面;NordVPN在Servers页面提供ovpn配置包;Mullvad在账户页面的OpenVPN配置区域。

Q4:免费版有哪些限制?

A:免费版不限制使用次数,但不支持自动重连、多VPN并发管理、智能负载均衡、失败熔断机制、代理链(VPN+SOCKS5)等高级功能。

Q5:Windows系统可以使用吗?

A:可以。需要安装OpenVPN GUI客户端,并将配置文件放到对应目录。CLI命令略有不同,需要以管理员权限运行。建议在WSL2中使用以获得最佳兼容性。

Q6:轮换时会导致请求中断吗?

A:会。VPN轮换过程需要断开旧连接、建立新连接,期间约3-10秒网络中断。建议在轮换前后添加重试逻辑,或在非关键请求时段执行轮换。

依赖说明

运行环境

  • Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
  • 操作系统: Linux(推荐)/ macOS / Windows(WSL2)
  • Python: 3.8+
  • OpenVPN: 2.5+(VPN连接核心依赖)
  • sudo权限: 配置openvpn免密执行

第三方依赖

依赖项类型是否必需获取方式
LLM APIAPI必需由Agent平台内置LLM提供
OpenVPN系统软件必需apt install openvpn / 官网下载
requestsPython库推荐pip install requests
psutilPython库可选pip install psutil(进程管理)
VPN服务商账号订阅必需ProtonVPN/NordVPN/Mullvad等

API Key 配置

  • VPN凭证: 存储于 ~/.vpn/creds.txt,权限设为600
  • VPN配置文件: 存储于 ~/.vpn/servers/ 目录
  • 禁止: 在代码仓库中提交凭证文件
  • 推荐: 将 ~/.vpn/ 目录添加到 .gitignore

可用性分类

  • 分类: MD+EXEC(纯Markdown指令,部分功能需要exec命令行执行能力)
  • 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent管理VPN连接

免费版限制

本免费体验版限制以下高级功能:

  • 不支持断线自动重连(需手动恢复)
  • 不支持多VPN并发管理(同时仅1个VPN连接)
  • 不支持智能负载均衡与服务器优选
  • 不支持失败熔断机制
  • 不支持VPN+SOCKS5代理链
  • 不支持按地区智能路由
  • 不提供优先技术支持

解锁全部功能请使用专业版:vpn-rotator-pro

错误处理

错误场景原因处理方式
配置错误参数缺失或格式错误检查依赖说明中的配置要求
运行时错误运行环境不满足确认运行环境符合依赖说明
网络错误连接超时或不可达执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案

输出格式

{
  "success": true,
  "data": {
    "result": "VPN轮换工具免费版处理结果",
    "execution_time": "0.5s",
    "metadata": {
      "version": "1.0",
      "processor": "vpn rotator"
    }
  },
  "execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
  "error": null
}

评论

加载中…