mirror of
https://github.com/yshtcn/alicloud-ip-updater.git
synced 2025-12-13 18:20:17 +08:00
128 lines
3.1 KiB
Markdown
128 lines
3.1 KiB
Markdown
|
||
# AliCloud IP Updater
|
||
|
||
## 项目简介
|
||
|
||
[AliCloudIPUpdater](https://github.com/yshtcn/alicloud-ip-updater) 是一个用于定期更新阿里云安全组白名单的工具。它可以从指定的URL获取当前IP地址,并将其添加到阿里云安全组中。程序还集成了Server酱API,用于在更新白名单和发生重大错误时发送通知。
|
||
|
||
## 功能
|
||
|
||
- 定期从指定URL获取当前IP地址。
|
||
- 更新阿里云安全组的白名单。
|
||
- 删除旧的白名单规则。
|
||
- 通过Server酱发送更新和错误通知。
|
||
- 支持自定义通知标题和内容。
|
||
|
||
## 环境要求
|
||
|
||
- Python 3.12
|
||
- 阿里云账号及其访问密钥(Access Key ID 和 Access Key Secret)
|
||
- Docker(可选)
|
||
|
||
## 配置文件
|
||
|
||
程序需要一个配置文件 `config.json`,您可以基于 `config.sample.json` 创建。以下是配置文件的示例:
|
||
|
||
```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. 克隆项目:
|
||
|
||
```bash
|
||
git clone https://github.com/yshtcn/alicloud-ip-updater.git
|
||
cd alicloud-ip-updater
|
||
```
|
||
|
||
2. 安装依赖:
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
3. 创建配置文件:
|
||
|
||
基于 `config.sample.json` 创建 `config.json` 并填写您的配置信息。
|
||
|
||
4. 运行程序:
|
||
|
||
```bash
|
||
python AliCloudIPUpdater.py
|
||
```
|
||
|
||
### 使用Docker
|
||
|
||
1. 构建Docker镜像:
|
||
|
||
```bash
|
||
docker build -t yshtcn/alicloud_ip_updater .
|
||
```
|
||
|
||
2. 运行Docker容器:
|
||
|
||
```bash
|
||
docker run -v /path/to/config:/app/config yshtcn/alicloud_ip_updater
|
||
```
|
||
|
||
注意:请将 `/path/to/config` 替换为您本地存放 `config.json` 的路径。
|
||
|
||
### Docker Hub
|
||
|
||
本项目发布在 [Docker Hub](https://hub.docker.com/r/yshtcn/alicloud_ip_updater),您也可以直接从Docker Hub拉取本项目镜像:
|
||
|
||
```bash
|
||
docker pull yshtcn/alicloud_ip_updater
|
||
```
|
||
|
||
然后运行Docker容器:
|
||
|
||
```bash
|
||
docker run -v /path/to/config:/app/config yshtcn/alicloud_ip_updater
|
||
```
|
||
|
||
## 常见问题
|
||
|
||
### 配置文件不存在
|
||
|
||
如果程序提示配置文件不存在,请确保您已正确映射配置文件目录,并且配置文件名为 `config.json`。
|
||
|
||
### 通知发送失败
|
||
|
||
请检查您的Server酱Key是否正确配置,并且网络连接正常。
|
||
|
||
## 特别说明
|
||
|
||
本项目代码及其文档使用AI辅助编写实现创意,请您谨防相关风险。
|
||
|
||
## 许可证
|
||
|
||
本项目使用MIT许可证。详细信息请参见LICENSE文件。
|
||
|
||
|
||
|
||
|