Skip to content

🤖 Mihomo集成 (mihomo-iptest)

mihomo-iptest 是 ed CLI 的旗舰功能,它将IP性能测试与代理配置生成完美结合,为您提供从测试到部署的一站式解决方案。

🎯 功能概述

mihomo-iptest 是一个完整的工作流集成,具备以下能力:

  • ⚡ IP性能测试: 利用强大的iptest引擎测试全球节点
  • 🔄 代理配置生成: 基于测试结果自动生成代理配置
  • 🧹 智能筛选: 自动筛选优质节点并去重
  • 🎬 流媒体检测: 检查 Netflix、YouTube 等平台解锁能力
  • 💾 多格式输出: 支持 Clash、V2Ray、Shadowsocks 等格式
  • ☁️ 云端保存: 支持多种云存储和Git仓库

🔄 工作流程

mihomo-iptest 按以下步骤自动处理整个工作流:

mermaid
graph TD
    A[获取优质IP] --> B[生成代理配置]
    B --> C[可用性验证]
    C --> D[速度测试]
    D --> E[流媒体检测]
    E --> F[生成结果文件]
    F --> G[云端保存]

详细处理步骤

  1. 🌐 IP获取: 从全球数据中心获取优质IP地址
  2. ⚙️ 配置生成: 将IP转换为vless/vmess/trojan代理配置
  3. ✅ 可用性验证: 验证生成的代理配置是否可用
  4. ⚡ 性能测试: 测试代理的延迟和速度性能
  5. 🎬 流媒体检测: 检查代理对各大流媒体平台的解锁能力
  6. 📄 格式转换: 将优质代理转换为各种客户端格式
  7. ☁️ 云端保存: 自动上传到指定的云存储或Git仓库

🚀 快速开始

第一步:创建配置文件

首次运行 mihomo-iptest 时,程序会自动创建配置文件:

bash
ed mihomo-iptest -f config/mihomo-config.yaml

如果配置文件不存在,程序会创建一个包含示例配置的模板文件。

第二步:编辑配置

使用您喜欢的文本编辑器打开配置文件:

yaml
# IP测试配置
ip_test:
  colos: ["HKG", "SIN", "NRT", "LAX"]  # 数据中心
  limit: 20                            # 每个数据中心的IP数量
  skip_test: false                     # 是否跳过TCP测试
  
# 代理配置生成
proxy_config:
  protocols:
    - vless
    - vmess
    - trojan
  ports: [443, 80, 8080, 8443]
  
# 验证配置(使用sub-check引擎)
validation:
  concurrent: 200          # 并发测试数量
  timeout: 5              # 连接超时(秒)
  min_speed: 5            # 最低速度要求(MB/s)
  enable_speed_test: true # 是否进行速度测试
  
# 流媒体检测
media_check:
  enabled: true
  platforms:
    - netflix
    - youtube
    - disney_plus

# 输出配置
output:
  formats:
    - clash
    - v2ray
    - shadowsocks
  filename_template: "mihomo_nodes_{date}"

第三步:运行集成工作流

配置完成后,运行完整的工作流:

bash
ed mihomo-iptest -f config/mihomo-config.yaml

第四步:查看结果

程序完成后,您可以在 results 文件夹中找到生成的文件:

results/
├── mihomo_all.yaml       # Clash 格式的所有节点
├── mihomo_premium.yaml   # 高速节点(速度 > 50MB/s)
├── mihomo_netflix.yaml   # 支持 Netflix 的节点
├── v2ray_config.json     # V2Ray 格式配置
└── shadowsocks.txt       # Shadowsocks 链接列表

🛠️ 详细配置

IP测试配置

数据中心选择

yaml
ip_test:
  colos: ["HKG", "SIN", "NRT", "LAX", "FRA"]
  limit: 50                    # 每个数据中心获取的IP数量
  skip_test: false            # false=进行TCP测试, true=快速获取
  concurrent: 100             # TCP测试并发数
  timeout: 3                  # TCP测试超时(秒)

性能要求

yaml
ip_test:
  filters:
    max_latency: 200          # 最大延迟(毫秒)
    min_success_rate: 80      # 最低成功率(%)
    preferred_asns:           # 优先ASN
      - 13335                 # Cloudflare
      - 15169                 # Google

代理配置生成

协议配置

yaml
proxy_config:
  protocols:
    vless:
      enabled: true
      encryption: "none"
      flow: "xtls-rprx-vision"
    vmess:
      enabled: true
      encryption: "auto"
      alter_id: 0
    trojan:
      enabled: true
      password: "your-password"
      
  # 端口配置
  ports: [443, 80, 8080, 8443, 2053, 2083]
  
  # TLS配置
  tls:
    enabled: true
    server_names: ["cloudflare.com", "google.com"]

高级配置

yaml
proxy_config:
  # WebSocket配置
  websocket:
    enabled: true
    paths: ["/", "/ws", "/websocket"]
    
  # gRPC配置
  grpc:
    enabled: true
    service_names: ["grpc", "gunservice"]
    
  # 传输层配置
  transport:
    - ws
    - grpc
    - tcp

验证配置

yaml
validation:
  # 基础测试
  concurrent: 200
  timeout: 5
  retry_count: 3
  
  # 性能要求
  max_latency: 500
  min_speed: 5
  enable_speed_test: true
  speed_test_timeout: 15
  
  # 过滤规则
  filters:
    exclude_keywords:
      - "测试"
      - "到期"
      - "Traffic"

云端保存配置

GitHub Gist

yaml
save_config:
  github_gist:
    enabled: true
    token: "ghp_your_github_token"
    gist_id: "your_gist_id"
    filename: "mihomo_subscription.yaml"

AWS S3

yaml
save_config:
  s3:
    enabled: true
    bucket: "your-bucket-name"
    region: "us-west-2"
    access_key: "YOUR_ACCESS_KEY"
    secret_key: "YOUR_SECRET_KEY"
    path: "mihomo/"

⚡ 高级用法

快速模式

对于快速获取可用代理,可以跳过耗时的TCP测试:

bash
# 快速模式:跳过IP测试,直接生成配置
ed mihomo-iptest -f config.yaml --skip-ip-test

# 仅生成特定协议
ed mihomo-iptest -f config.yaml --protocols vless,vmess

# 限制IP数量
ed mihomo-iptest -f config.yaml --limit 10

批处理脚本

创建批处理脚本来定期更新代理:

bash
#!/bin/bash
# update_mihomo.sh

echo "开始更新Mihomo代理配置..."

# 更新亚洲节点
ed mihomo-iptest -f config/asia.yaml

# 更新美洲节点  
ed mihomo-iptest -f config/america.yaml

# 更新欧洲节点
ed mihomo-iptest -f config/europe.yaml

# 合并结果
cat results/asia_*.yaml results/america_*.yaml results/europe_*.yaml > results/global.yaml

echo "Mihomo代理配置更新完成!"

多环境配置

游戏优化配置

yaml
# gaming.yaml
ip_test:
  colos: ["HKG", "SIN", "NRT"]  # 亚洲低延迟地区
  limit: 30
  
validation:
  max_latency: 50               # 严格延迟要求
  min_speed: 20                 # 适中速度要求
  
proxy_config:
  protocols: ["vless", "vmess"]  # 低延迟协议
  transport: ["tcp", "grpc"]     # 稳定传输

流媒体配置

yaml
# streaming.yaml
ip_test:
  colos: ["LAX", "FRA", "NRT"]  # 流媒体友好地区
  
media_check:
  enabled: true
  platforms:
    netflix:
      enabled: true
      regions: ["US", "JP", "UK"]
    disney_plus:
      enabled: true
      
validation:
  min_speed: 50                 # 高速度要求

📊 结果分析

生成的文件说明

Clash 格式配置

yaml
# mihomo_all.yaml
proxies:
  - name: "🇭🇰 HKG-Cloudflare-01"
    type: vless
    server: 1.2.3.4
    port: 443
    uuid: your-uuid
    tls: true
    
proxy-groups:
  - name: "🚀 手动切换"
    type: select
    proxies: ["🇭🇰 HKG-Cloudflare-01", ...]
  - name: "🎬 流媒体"
    type: select
    filter: "Netflix|Disney"

统计报告

Mihomo集成工作流完成!

📊 处理统计:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• 获取IP数量: 400 个
• 生成代理配置: 1,200 个
• 验证通过: 456 个
• 高速代理 (>50MB/s): 89 个

🌍 地区分布:
• 🇭🇰 香港: 156 个 (平均延迟: 25ms, 平均速度: 85MB/s)
• 🇸🇬 新加坡: 124 个 (平均延迟: 35ms, 平均速度: 78MB/s)
• 🇯🇵 日本: 98 个 (平均延迟: 45ms, 平均速度: 92MB/s)
• 🇺🇸 美国: 78 个 (平均延迟: 120ms, 平均速度: 156MB/s)

🎬 流媒体解锁:
• Netflix: 234 个代理
• YouTube Premium: 445 个代理
• Disney+: 156 个代理

📁 生成文件:
• results/mihomo_all.yaml (456 个代理)
• results/mihomo_premium.yaml (89 个代理)
• results/mihomo_netflix.yaml (234 个代理)

🔧 故障排除

常见问题

IP获取失败

症状: 提示 "Failed to fetch IPs"

解决方案:

  1. 检查网络连接
  2. 验证数据中心代码是否正确
  3. 尝试减少并发数或IP数量限制
yaml
ip_test:
  concurrent: 50    # 降低并发
  limit: 10         # 减少数量
  timeout: 10       # 增加超时

代理验证失败率高

症状: 大部分生成的代理验证失败

解决方案:

  1. 调整代理配置参数
  2. 尝试不同的协议组合
  3. 检查本地网络环境
yaml
proxy_config:
  protocols: ["vless"]  # 单一协议测试
  ports: [443]          # 标准端口

validation:
  timeout: 10          # 增加验证超时
  retry_count: 3       # 增加重试

🎯 最佳实践

1. 配置策略

  • 分场景配置: 针对不同使用场景创建专门配置
  • 渐进优化: 从基础配置开始,逐步优化参数
  • 定期更新: 根据网络环境变化调整配置

2. 性能优化

  • 合理并发: 根据系统性能调整并发数
  • 智能筛选: 使用过滤条件减少无效测试
  • 缓存利用: 启用缓存减少重复工作

3. 结果管理

  • 版本控制: 使用Git管理配置和结果
  • 云端备份: 利用多种云存储确保数据安全
  • 监控自动化: 设置定时任务自动更新

准备好了解订阅检查的详细功能了吗?查看 订阅检查 (sub-check) 了解mihomo-iptest工作流中的验证环节详情!

Released under the MIT License.