2024-06-06 10:08:02 +08:00
2024-06-05 19:56:27 +08:00
2024-06-05 19:56:27 +08:00
2024-06-04 00:31:10 +08:00
2024-06-06 10:08:02 +08:00
2024-06-06 09:59:55 +08:00
2024-06-03 22:55:03 +08:00

AliCloud IP Updater

项目简介

AliCloudIPUpdater 是一个用于定期更新阿里云安全组白名单的工具。它可以从指定的URL获取当前IP地址并将其添加到阿里云安全组中。程序还集成了Server酱API用于在更新白名单和发生重大错误时发送通知。

功能

  • 定期从指定URL获取当前IP地址。
  • 更新阿里云安全组的白名单。
  • 删除旧的白名单规则。
  • 通过Server酱发送更新和错误通知。
  • 支持自定义通知标题和内容。

环境要求

  • Python 3.12
  • 阿里云账号及其访问密钥Access Key ID 和 Access Key Secret
  • Docker可选

配置文件

程序需要一个配置文件 config.json,您可以基于 config.sample.json 创建。以下是配置文件的示例:

{
    "ACCESS_KEY_ID": "your_access_key_id",
    "ACCESS_KEY_SECRET": "your_access_key_secret",
    "REGION_ID": "your_region_id",
    "SECURITY_GROUP_ID": "your_security_group_id",
    "TAG": "your_tag",
    "GETIP_URLS": [
        "https://getip.ysht.me"
    ],
    "PORTS": [
        {"port": "53", "protocol": "udp"},
        {"port": "6053", "protocol": "tcp"},
        {"port": "1-65535", "protocol": "tcp"}
    ],
    "PRIORITY": 1,
    "IP_RECORD_FILE": "ip_records.json",
    "INTERVAL_SECONDS": 3600,
    "SERVER_CHAN_KEY": "your_server_chan_key",
    "SERVER_CHAN_TITLE": "阿里云安全组白名单更新通知",
    "SERVER_CHAN_MESSAGE": "monitor已更新白名单IP:{IP},端口: {ports}"
}

使用方法

在本地运行

  1. 克隆项目:

    git clone https://github.com/yshtcn/alicloud-ip-updater.git
    cd alicloud-ip-updater
    
  2. 安装依赖:

    pip install -r requirements.txt
    
  3. 创建配置文件:

    基于 config.sample.json 创建 config.json 并填写您的配置信息。

  4. 运行程序:

    python AliCloudIPUpdater.py
    

使用Docker

  1. 构建Docker镜像

    docker build -t yshtcn/alicloud_ip_updater .
    
  2. 运行Docker容器

    docker run -v /path/to/config:/app/config yshtcn/alicloud_ip_updater
    

    注意:请将 /path/to/config 替换为您本地存放 config.json 的路径。

Docker Hub

本项目发布在 Docker Hub,您也可以直接从Docker Hub拉取本项目镜像

docker pull yshtcn/alicloud_ip_updater

然后运行Docker容器

docker run -v /path/to/config:/app/config yshtcn/alicloud_ip_updater

常见问题

配置文件不存在

如果程序提示配置文件不存在,请确保您已正确映射配置文件目录,并且配置文件名为 config.json

通知发送失败

请检查您的Server酱Key是否正确配置并且网络连接正常。

特别说明

本项目代码及其文档使用AI辅助编写实现创意请您谨防相关风险。

许可证

本项目使用MIT许可证。详细信息请参见LICENSE文件。

Description
No description provided
Readme MIT 44 KiB
Languages
Python 79.1%
PowerShell 17.2%
Dockerfile 3.7%