将一台仅有 单个 IPv6 地址 的 VPS 变成可动态创建/管理数万个 IPv6 代理的站群服务器。集成 Ollama AI(qwen2:0.5b),通过 Telegram Bot + Inline Keyboard 实现对话式交互管理。支持 VLESS / VMess / Trojan / Shadowsocks / SOCKS5 / HTTP 六种协议,每条代理创建时自动验证连通性。
Telegram User ──► Telegram Bot ──► AI Intent Parser (Ollama)
│
▼
┌──────────────────┐
│ Orchestrator │
│ ┌──────┐┌─────┐┌────────┐
│ │IPv6 ││Xray ││Firewall│
│ │Mgr ││Mgr ││Mgr │
│ └──────┘└─────┘└────────┘
└────────┬─────────┘
│
┌────────▼─────────┐
│ Xray-core │
│ N inbounds = │
│ N IPv6 addresses │
│ on /64 subnet │
└──────────────────┘
| 模块 | 功能 |
|---|---|
| IPv6 地址管理 | 自动检测 /64 子网,批量绑定/解绑 IPv6,已释放地址可复用 |
| 多协议代理 | VLESS / VMess / Trojan / Shadowsocks / SOCKS5 / HTTP,基于 Xray-core |
| 连通性验证 | 每条代理创建后自动 TCP 验证,最多重试 3 次,不通过的自动回滚 |
| TLS 加密 | 自签证书 / Let's Encrypt,Trojan 可选手动开启 TLS |
| AI 智能 | Ollama + qwen2:0.5b,自然语言理解用户意图 + 正则回退 |
| Telegram Bot | Inline Keyboard 菜单、分页列表、详情/分享链接/删除确认 |
| 健康检查 | 定时健康检查 + error 代理冷却期(不反复刷屏)+ 自动重启 |
| 安全加固 | 用户白名单、防火墙自动管理、凭证自动生成 |
| 项目 | 最低 | 推荐 |
|---|---|---|
| 操作系统 | Ubuntu 20.04+ | Ubuntu 22.04 |
| Python | 3.10+ | 3.10+ |
| 内存 | 1 GB | 2 GB+ |
| 磁盘 | 5 GB | 10 GB+ |
| IPv6 | /64 子网 | /64 或更大 |
| Xray-core | 1.8.x | 1.8.23 |
| Ollama | 最新 | 最新 |
git clone https://github.com/ffei2963-ai/ipv666.git
cd ipv666# Python 依赖
pip install aiohttp pyyaml python-dotenv aiosqlite psutil cryptography Jinja2 python-telegram-bot
# 安装 Xray-core
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install --version 1.8.23
# 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 拉取 AI 模型
ollama pull qwen2:0.5b
# 生成 TLS 自签证书
mkdir -p /app/certs
openssl req -x509 -newkey rsa:2048 -keyout /app/certs/key.pem \
-out /app/certs/cert.pem -days 3650 -nodes -subj "/CN=localhost"
# 创建所需目录
mkdir -p /var/log/xray /var/log/app /usr/local/etc/xraycp .env.example .envTELEGRAM_BOT_TOKEN=你的Bot Token # 从 @BotFather 获取
TELEGRAM_ADMIN_IDS=你的Telegram用户ID # 从 @userinfobot 获取
OLLAMA_MODEL=qwen2:0.5b
PROXY_BASE_PORT=10000
HEALTH_CHECK_INTERVAL=60
VPS_IPV6_INTERFACE=eth0
TLS_ENABLED=false# 启动 Xray-core(空配置)
/usr/local/bin/xray run -config /usr/local/etc/xray/config.json > /dev/null 2>&1 &
# 启动 IPv666
export CONFIG_PATH=$(pwd)/config/settings.yaml \
DB_DIR=$(pwd)/data \
LOG_DIR=/var/log/app \
PYTHONPATH=$(pwd)
python3 src/main.pycp .env.example .env # 编辑 .env 填好 Token
docker compose up -d --build
docker compose logs -f搜索 @ipv666bot(或你设置的 Bot 名称),发送 /start 即可看到控制面板。
🤖 IPv666 ── 控制面板
┌──────────────────────┐
│ 📦 创建代理 │
├──────────────────────┤
│ 📋 代理列表 │ 📊 统计 │
├──────────────────────┤
│ 🔍 健康检查 │ ℹ️ 帮助 │
└──────────────────────┘
| 方式 | 示例 |
|---|---|
| 快捷预设 | 点击菜单中的 "1x VLESS+SS" / "3x 全部协议" 等 |
| 命令行 | /create 5 vless ss socks5 |
| 自然语言 | 创建 10 个 vmess 代理 / create 3 proxies with vless |
- 分页浏览(每页 5 条)
- 每条显示状态图标(🟢 active / 🔴 error)
- 点击代理查看详情、分享链接、删除确认
| 命令 | 示例 |
|---|---|
/start 或 /menu |
打开控制面板 |
/create 5 vless ss |
创建 5 个代理 |
/list |
浏览所有代理 |
/delete 3 |
删除代理 #3 |
/stats |
查看统计 |
/help |
帮助 |
| 协议 | 用户输入 | 验证方式 | 认证方式 | 加密 | TLS |
|---|---|---|---|---|---|
| VLESS | vless | TCP Connect | UUID | none | 可选 |
| VMess | vmess | TCP Connect | UUID + alterId=0 | auto | 可选 |
| Trojan | trojan | TCP Connect | 密码 (24字符) | — | 可选 |
| Shadowsocks | ss / shadowsocks | TCP Connect | aes-256-gcm + 密码 | aes-256-gcm | — |
| SOCKS5 | socks5 / socks | TCP Connect | user:proxy + 密码 | — | — |
| HTTP | http / https | TCP Connect | user:proxy + 密码 | — | — |
注意: 本项目使用 TCP Connect 验证代理可达性(不进行协议握手)。要真正使用代理,需用对应协议的客户端(v2rayN、Clash 等)。
每条代理自动生成唯一凭证,在 Bot 详情页可查看:
🔐 账号密码:
🔹 VLESS:UUID: 550e8400-e29b-41d4-a716-446655440000
🔸 VMess:UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
🔺 Trojan:密码: Kx9#mP2$vL7qW8!aB3cD
🟣 Shadowsocks:方法: aes-256-gcm 密码: a1b2c3d4...(32位hex)
🟠 SOCKS5:用户: proxy 密码: Xy8#qR3
🟤 HTTP:用户: proxy 密码: Jk5!mL9
代理 #1: IPv6 2602:294:1:a18::2, base_port=10000
├── VLESS :10000
├── VMess :10001
└── SOCKS5 :10002
代理 #2: IPv6 2602:294:1:a18::3, base_port=10003
├── VLESS :10003
└── SOCKS5 :10004
agent:
health_check_interval: 60 # 健康检查间隔(秒)
max_consecutive_failures: 3 # 连续失败 N 次触发自动修复
verify_new_proxy: true # 创建时验证连通性(强烈推荐 true)
max_proxies: 5000 # 代理数量上限
proxy:
base_port: 10000 # 起始端口
ipv6:
interface: eth0 # IPv6 网卡
address_start_offset: 2 # 起始 IPv6 offset(::2 开始)| 变量 | 说明 | 默认值 |
|---|---|---|
TELEGRAM_BOT_TOKEN |
Bot Token | 必填 |
TELEGRAM_ADMIN_IDS |
管理员 ID(逗号分隔) | 必填 |
OLLAMA_MODEL |
AI 模型 | qwen2:0.5b |
PROXY_BASE_PORT |
起始端口 | 10000 |
HEALTH_CHECK_INTERVAL |
健康检查间隔 | 60 |
VPS_IPV6_INTERFACE |
IPv6 网卡 | eth0 |
ipv666/
├── README.md
├── Dockerfile
├── docker-compose.yml
├── .env.example / .env
├── requirements.txt
├── entrypoint.sh
├── config/
│ └── settings.yaml # 全局 YAML 配置
├── scripts/ # Shell 安装脚本(Docker 用)
├── src/
│ ├── main.py # 应用入口
│ ├── bot/
│ │ └── telegram_bot.py # Bot + Inline Keyboard(中文)
│ ├── agent/
│ │ ├── orchestrator.py # 核心编排:批量创建/删除/验证
│ │ ├── intent_parser.py # AI + 正则 意图解析
│ │ └── health_checker.py # 定时健康检查 + 冷却
│ ├── ipv6/
│ │ ├── address_manager.py # IPv6 分配/释放/复用
│ │ └── subnet_detector.py # 子网检测
│ ├── proxy/
│ │ ├── xray_manager.py # Xray 进程管理(kill+restart)
│ │ ├── xray_templates.py # 6 协议 inbound 模板
│ │ ├── share_link.py # 分享链接生成
│ │ ├── verifier.py # TCP 连通性验证
│ │ └── tls_manager.py # TLS 证书管理
│ ├── llm/
│ │ └── ollama_client.py # Ollama API 封装
│ ├── security/
│ │ ├── firewall.py # iptables/nftables 管理
│ │ └── auth.py # 用户白名单
│ ├── db/
│ │ ├── database.py # SQLite
│ │ └── models.py # 数据模型
│ └── utils/
│ ├── config.py # 配置加载
│ ├── credential.py # UUID/密码生成
│ ├── logger.py # 日志
│ └── rollback.py # 事务回滚
├── data/ # SQLite + 测试结果
├── certs/ # TLS 证书
└── test_simulation.py # 30 天模拟测试
# 检查 Xray 是否运行
pgrep xray && echo "Xray OK" || echo "Xray NOT running"
# 启动 Xray
/usr/local/bin/xray run -config /usr/local/etc/xray/config.json > /dev/null 2>&1 &
# 检查证书是否存在
ls -la /app/certs/cert.pem /app/certs/key.pem
# 验证 Xray 配置
/usr/local/bin/xray run -config /usr/local/etc/xray/config.json -test常见原因:Trojan 协议需要 TLS 证书。运行:
mkdir -p /app/certs
openssl req -x509 -newkey rsa:2048 -keyout /app/certs/key.pem \
-out /app/certs/cert.pem -days 3650 -nodes -subj "/CN=localhost"# 停止所有 Python 进程,删除 DB 重建
pkill -f "src/main.py"
rm -f /root/ipv666/data/ipv666.db*
# 重新启动即可自动建库# 检查 Bot 日志
grep -E "error|Telegram|Bot|IPv666" /var/log/app/ipv666.log | tail -20
# 验证 Token
curl "https://api.telegram.org/bot<你的TOKEN>/getMe"
# 确认用户 ID 已添加到白名单
grep "Added bot user" /var/log/app/ipv666.log# 查看当前已绑定 IPv6
ip -6 addr show dev eth0 | grep global
# 检查子网前缀
ip -6 route show dev eth0
# 手动测试绑定
ip -6 addr add YOUR_SUBNET::ffff/64 dev eth0# 30 天模拟 + Bug 检测
export CONFIG_PATH=$(pwd)/config/settings.yaml \
DB_DIR=$(pwd)/data \
PYTHONPATH=$(pwd)
python3 test_simulation.py
# 60 天真实验证(需要 Xray 和 Ollama 运行中)
python3 /tmp/opencode/ipv666-test/60day_simulation.py- 修改默认端口:
PROXY_BASE_PORT=20000避免端口扫描 - 启用白名单:
TELEGRAM_ADMIN_IDS中仅填写自己的 ID - 不要泄露
.env: 已加入.gitignore - TLS 加密: 生产环境设置
TLS_ENABLED=true+TLS_DOMAIN - 定期更新:
pip install --upgrade依赖 + 更新 Xray-core
| 提交 | 内容 |
|---|---|
b5919ae |
修复: Trojan TLS 可选, Shadowsocks/HTTP 补充 streamSettings |
59dbb31 |
修复: SIGHUP→kill+restart, 失败代理物理 DELETE, 并行验证 |
eb21d3b |
修复: 批量回滚延迟 Xray 重载 |
7e7007e |
修复: IPv6 地址复用 |
b462ce9 |
修复: 批量创建代理 |
ea39b7e |
修复: 验证重试 3 次 |
3513918 |
功能: Bot 中文 Inline Keyboard UI |
- 代理引擎: Xray-core v1.8.23
- AI: Ollama + qwen2:0.5b
- Bot: python-telegram-bot v21.x
- 数据库: SQLite (aiosqlite)
- 并发: asyncio
- TLS: openssl / Let's Encrypt
MIT
本项目仅供学习和研究使用。请遵守当地法律法规,合理使用代理服务。