2025-04-13 10:12:54 +08:00
2025-04-13 10:07:12 +08:00
2025-04-13 10:12:54 +08:00

阿里云安全组动态IP更新工具

阿里云CLI

用于动态更新阿里云安全组规则的自动化脚本。

核心功能

  • 自动检测公网IP变动
  • 批量更新多安全组规则
  • 智能迁移旧IP规则到新IP
  • 严格验证协议和端口规则
  • 自动记录IP变更历史

系统要求

  • 已配置阿里云API访问权限
  • 基础工具:curljq

安装指南

1. 安装基础依赖

sudo yum install -y curl jq

2. 安装阿里云CLI二进制方式

aliyun命令行工具下载及详细教程地址

# 解压安装包
tar -zxvf aliyun-cli-linux-latest-amd64.tgz -C /usr/local/bin/

# 设置执行权限
chmod +x /usr/local/bin/aliyun

# 验证安装
aliyun --version

3. 配置阿里云CLI

aliyun configure

按照提示输入:

  • AccessKey ID
  • AccessKey Secret
  • 默认地域IDcn-beijing
  • 输出格式选择 json

脚本配置

编辑 alisg.sh 修改以下参数:

# 必填配置
REGION="cn-beijing"                                  # 您的阿里云地域
SECURITY_GROUP_IDS=("sg-2zebj4i9uydml05xwejg")       # 安全组ID数组
LOG_FILE="/var/log/ip-update.log"                    # 推荐使用绝对路径

# 可选调试参数
# _LAST_IP="142.171.168.162"                        # 手动指定旧IP
# _CURRENT_IP="115.171.170.151"                     # 手动指定新IP

使用方法

首次运行(测试模式)

chmod +x alisg.sh
./alisg.sh

生产环境建议

# 1. 创建专用目录
sudo mkdir -p /opt/aliyun_sg
sudo cp alisg.sh /opt/aliyun_sg/
sudo chown root:root /opt/aliyun_sg/alisg.sh

# 2. 设置定时任务(每小时检查)
echo "0 * * * * root /opt/aliyun_sg/alisg.sh >> /var/log/ip-update.log 2>&1" | sudo tee /etc/cron.d/aliyun_sg_update

日志监控

建议定期检查日志文件:

tail -f /var/log/ip-update.log

典型成功日志示例:

[2023-11-15 14:00:01] 检测到IP变更
旧IP142.171.168.162
新IP115.171.170.151
安全组 sg-2zebj4i9uydml05xwejg 处理完成:
- 已移除 TCP/22/22 规则
- 已添加 TCP/22/22 规则新IP
IP日志已更新

安全建议

  1. 限制日志文件权限:
sudo chmod 600 /var/log/ip-update.log
  1. 使用最小权限的AccessKey

  2. 定期备份安全组规则:

aliyun ecs DescribeSecurityGroupAttribute --RegionId $REGION --SecurityGroupId $SG_ID > sg_backup.json

故障排除

错误现象 解决方案
aliyun: command not found 检查PATH或使用完整路径 /usr/local/bin/aliyun
权限拒绝错误 使用 sudo 或检查AccessKey权限
JSON解析错误 安装正确版本的 jq 工具

许可证

MIT License - 自由使用和修改

Description
No description provided
Readme 36 KiB
Languages
Shell 100%