周期获取当前公网 IPv4 地址,并更新腾讯云安全组中指定规则的来源 IP(/32)。
复制 .env.example 为 .env 并按需修改:
cp .env.example .env
| 变量 | 必填 | 说明 |
|---|---|---|
TENCENT_SECRET_ID | 是 | 腾讯云 SecretId |
TENCENT_SECRET_KEY | 是 | 腾讯云 SecretKey |
TENCENT_REGION | 是 | 安全组所在地域,如 ap-guangzhou |
SECURITY_GROUP_ID | 是 | 安全组 ID,如 sg-xxxxxxxx |
RULE_INDEX | 三选一 | 入站规则在列表中的索引(最精确) |
RULE_DESCRIPTION | 三选一 | 规则备注/描述 |
RULE_PORT | 三选一 | 规则端口,如 22、80,443 |
UPDATE_INTERVAL_SECONDS | 否 | 更新周期,默认 300 秒 |
IP_SERVICE_URL | 否 | 公网 IP 查询服务,默认 https://api.ipify.org |
同时提供多种定位方式时,按
RULE_INDEX > RULE_DESCRIPTION > RULE_PORT优先级匹配。
构建镜像:
docker build -t qcloud-sg-updater .
使用 docker-compose(推荐):
docker compose up -d
或直接运行容器:
docker run -d --env-file .env --name qcloud-sg-updater qcloud-sg-updater
查看日志:
docker logs -f qcloud-sg-updater
创建虚拟环境并安装依赖:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
加载环境变量后运行:
export $(grep -v '^#' .env | xargs)
python main.py
python -m unittest discover -s tests -v
UPDATE_INTERVAL_SECONDS 秒从 IP_SERVICE_URL 获取当前公网 IPv4。DescribeSecurityGroupPolicies 拉取安全组入站规则。ModifySecurityGroupPolicies 更新为 <public-ip>/32。/32 掩码。Content type
Image
Digest
sha256:e889e216e…
Size
92.3 MB
Last updated
3 months ago
docker pull kitsudo/auto-safe-group