samsesh/github-ip-address-list
GitHub: samsesh/github-ip-address-list
该项目利用 GitHub Actions 每日自动生成可直接导入 MikroTik 路由器的 GitHub IP 地址列表脚本,解决了手动维护网络规则的痛点。
Stars: 7 | Forks: 0
# 适用于 MikroTik 的 GitHub IP 列表
本仓库自动从 [https://api.github.com/meta](https://api.github.com/meta) 获取最新的 GitHub IP 地址列表,并将其转换为兼容 MikroTik 的 `.rsc` 脚本文件。
该脚本使用 GitHub Actions 每日自动更新,非常适合用于防火墙规则、NAT 例外,或通过特定接口路由 GitHub 流量。
## 📆 生成的文件
* **`github-ip-list.rsc`**
兼容 MikroTik 的 RouterOS 脚本,用于将所有 GitHub IP 范围添加到名为 `GitHub` 的地址列表中。
内容示例:
```
# 自动生成的 MikroTik address list – GitHub IPs
/ip firewall address-list
add address=140.82.112.0/20 list=GitHub
add address=185.199.108.0/22 list=GitHub
add address=192.30.252.0/22 list=GitHub
...
```
## 🚀 MikroTik 导入脚本
要将 IP 列表自动获取并导入到你的 MikroTik 路由器中,请运行以下脚本:
```
:foreach i in={"GitHub"} do={
/tool fetch url="https://raw.githubusercontent.com/samsesh/github-ip-address-list/Localhost/github-ip-list.rsc" dst-path=$i
/ip firewall address-list remove [/ip firewall address-list find list=$i]
/import file-name=$i
/file remove $i
}
```
✅ 此脚本将会:
* 从你的 GitHub 仓库下载最新的 IP 列表
* 移除 `GitHub` 地址列表中的旧条目
* 导入更新后的列表
* 清理已下载的文件
## 🔁 自动化
本仓库使用 [GitHub Actions 工作流](.github/workflows/update-github-ips.yml),它会执行以下操作:
* 每天 UTC 时间午夜运行
* 从 GitHub Meta API 获取最新的 GitHub IP 范围
* 构建并向 `Localhost` 分支提交 MikroTik `.rsc` 文件(`github-ip-list.rsc`)
你也可以从 Actions 标签页手动运行该工作流。
## 📘 参考
* GitHub API: [https://api.github.com/meta](https://api.github.com/meta)
* MikroTik 脚本指南: [https://wiki.mikrotik.com/wiki/Manual\:Scripting](https://wiki.mikrotik.com/wiki/Manual:Scripting)
* MikroTik `/import` 命令: [`/import file-name=yourfile.rsc`](https://wiki.mikrotik.com/wiki/Manual:Console#import)
## ☕ 支持本项目
如果你觉得这个项目有用,可以在这里支持开发:
👉 [https://donate.samsesh.net](https://donate.samsesh.net)
## 🧑💻 维护者
**作者:** [samsesh](https://github.com/samsesh)
**网站:** [samsesh.net](https://samsesh.net)
标签:Docker 部署, GitHub Actions, IP地址列表, MikroTik, RouterOS, 网络调试, 网络运维, 自动化, 自动笔记