如何用脚本批量添加代理规则?

wen 实用脚本 2

本文目录导读:

如何用脚本批量添加代理规则?

  1. Clash/Meta 系(YAML 格式)
  2. Surge 格式
  3. V2Ray/Xray 规则
  4. 自动化脚本示例
  5. Web 管理界面
  6. 推荐的最佳实践

我来介绍几种在常用代理工具中批量添加代理规则的方法。

Clash/Meta 系(YAML 格式)

直接编辑配置文件

# config.yaml 示例
rules:
  # 批量添加域名规则
  - DOMAIN-SUFFIX,google.com,Proxy
  - DOMAIN-SUFFIX,youtube.com,Proxy
  - DOMAIN-SUFFIX,twitter.com,Proxy
  # 批量添加 IP 规则
  - IP-CIDR,10.0.0.0/8,DIRECT
  - IP-CIDR,172.16.0.0/12,DIRECT
  - IP-CIDR,192.168.0.0/16,DIRECT

使用 Python 脚本批量生成

# 批量生成规则脚本
with open('rules.txt', 'r') as f:
    domains = f.readlines()
with open('proxy_rules.yaml', 'w') as f:
    for domain in domains:
        f.write(f"  - DOMAIN-SUFFIX,{domain.strip()},Proxy\n")

Surge 格式

规则文件格式

# surge_rules.txt
# 批量域名规则
DOMAIN-SUFFIX,google.com,Proxy
DOMAIN-SUFFIX,youtube.com,Proxy
# 批量 IP 规则
IP-CIDR,10.0.0.0/8,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT
# 批量关键词规则
KEYWORD,ad,REJECT
KEYWORD,tracking,REJECT

V2Ray/Xray 规则

JSON 格式配置

{
  "routing": {
    "rules": [
      // 批量添加域名规则
      {"domain": ["google.com", "youtube.com"], "outboundTag": "proxy"},
      {"domain": ["taobao.com", "baidu.com"], "outboundTag": "direct"},
      // 批量添加 IP 规则
      {"ip": ["10.0.0.0/8", "172.16.0.0/12"], "outboundTag": "direct"}
    ]
  }
}

自动化脚本示例

Shell 脚本批量添加规则

#!/bin/bash
# 批量添加规则的 shell 脚本
PROXY_LIST="proxy_domains.txt"
DIRECT_LIST="direct_domains.txt"
OUTPUT_FILE="rules.yaml"
# 清空输出文件
> $OUTPUT_FILE
# 批量添加代理规则
while IFS= read -r domain; do
  if [[ ! -z "$domain" && "$domain" != \#* ]]; then
    echo "  - DOMAIN-SUFFIX,$domain,Proxy" >> $OUTPUT_FILE
  fi
done < "$PROXY_LIST"
# 批量添加直连规则
while IFS= read -r domain; do
  if [[ ! -z "$domain" && "$domain" != \#* ]]; then
    echo "  - DOMAIN-SUFFIX,$domain,DIRECT" >> $OUTPUT_FILE
  fi
done < "$DIRECT_LIST"
echo "规则生成完成: $OUTPUT_FILE"

Web 管理界面

一些代理工具有 Web 管理界面:

# Clash 的 API 接口
curl -X PUT 'http://localhost:9090/configs' \
  -H 'Content-Type: application/json' \
  -d '{"rules": ["DOMAIN-SUFFIX,example.com,Proxy"]}'

推荐的最佳实践

  1. 规则排序:精确规则在前,泛匹配规则在后
  2. 规则分类:按域名、IP、进程等分类管理
  3. 定期更新:使用脚本定期更新规则列表
  4. 备份规则:修改前备份原始配置

需要哪种具体工具或场景的详细示例?我可以提供更针对性的脚本。

抱歉,评论功能暂时关闭!