logo
0
0
WeChat Login

功能概述

本脚本用于通过腾讯云API获取EdgeOne服务的回源IP列表,并生成三种格式的配置文件:

cdn-real.conf - Nginx的set_real_ip_from配置

cdn-whitelist.conf - Nginx的geo模块配置

cdn-allow.conf - Nginx的allow/deny访问控制配置

系统要求

Bash环境

jq工具(用于JSON处理)

openssl工具(用于签名生成)

安装依赖

sudo apt-get update sudo apt-get install -y jq openssl

配置说明

在使用脚本前,请修改以下配置参数:

SECRET_ID="YOUR_SECRET_ID" # 腾讯云SecretId SECRET_KEY="YOUR_SECRET_KEY" # 腾讯云SecretKey ZONE_ID="zone-xxxxxx" # EdgeOne站点Zone ID REGION="ap-singapore" # 地域代码

使用方法

基本命令

wget https://cnb.cool/hsred/edgeone-ACL/-/git/raw/main/edgeone-acl.sh && ./edgeone-acl.sh [选项]

可用选项

选项描述
--real仅生成cdn-real.conf
--whitelist仅生成cdn-whitelist.conf
--allow仅生成cdn-allow.conf
--all生成所有配置文件
--output<目录> 指定配置文件输出目录
--check-update检查回源IP列表是否有更新

使用示例

生成所有配置文件到当前目录:

./edgeone-acl.sh --all

生成特定配置文件到指定目录:

./edgeone-acl --real --whitelist --output /etc/nginx/conf.d

检查回源IP列表更新:

./edgeone-acl.sh --check-update

输出文件说明

cdn-real.conf

包含所有回源IP段的set_real_ip_from指令,用于Nginx获取真实客户端IP。

cdn-whitelist.conf

使用Nginx的geo模块定义变量,标记来自CDN的请求。

cdn-allow.conf

包含允许访问的CDN IP段和默认拒绝规则,用于访问控制。

自动更新建议

可以设置cron任务定期更新配置:

# 每天凌晨更新配置并重载Nginx 0 0 * * * /path/to/edgeone-acl.sh --all --output /etc/nginx/conf.d && nginx -s reload

注意事项

  1. 请妥善保管API密钥,建议通过环境变量传递

  2. 确保脚本有执行权限:chmod +x edgeone-acl.sh

  3. 生成配置文件后,需要在Nginx配置中正确引用

  4. 脚本需要网络连接以访问腾讯云API

错误处理

常见错误及解决方法:

  • 权限不足:检查API密钥是否有足够权限

  • Zone ID错误:确认Zone ID是否正确

  • 依赖缺失:确保已安装jq和openssl工具

  • 网络问题:检查服务器网络连接是否正常

版本历史

1.0.0 初始版本

1.1.0 添加更新检测功能

1.1.1 改进错误处理机制

About

No description, topics, or website provided.
Language
Shell69.8%
Markdown30.2%