farshidmousavii/iran-ip-ranges

GitHub: farshidmousavii/iran-ip-ranges

自动更新伊朗IP地址列表,用于VPN、代理和防火墙的流量路由优化。

Stars: 1 | Forks: 0

# iran-ip-ranges — 伊朗 IPv4/IPv6 前缀列表与获取工具 **波斯语** | [English](#english) ## 波斯语 ### 这个项目是什么? 使用持续更新的伊朗 IPv4/IPv6 前缀列表,自动将伊朗流量从您的 VPN、代理或路由器中路由出去。 适用于 VPN 服务器、路由器、防火墙和代理服务器。 该项目每 6 小时从 RIPE Stat 获取伊朗已宣布的前缀,进行合并和规范化,并生成可立即使用的多种格式输出文件。 ## 直接下载文件 所有文件均在 `dist/` 目录下可用: - **纯文本:** `dist/raw/ipv4.txt`, `dist/raw/ipv6.txt` - **Clash / Mihomo:** `dist/clash/iran.yaml` - **Sing-box:** `dist/sing-box/iran.json` - **Xray:** `dist/xray/iran.json` - **NFTables ipset:** `dist/firewall/iran.ipset` - **NFTables 配置:** `dist/firewall/iran.nft` - **OpenWRT:** `dist/openwrt/iran.sh` - **MikroTik RouterOS:** `dist/routeros/ipv4.rsc`, `dist/routeros/ipv6.rsc` ### 直接下载链接 | 文件 | 链接 | |------|------| | `raw/ipv4.txt` | [下载](https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/raw/ipv4.txt) | | `raw/ipv6.txt` | [下载](https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/raw/ipv6.txt) | | `routeros/ipv4.rsc` | [下载](https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/routeros/ipv4.rsc) | | `routeros/ipv6.rsc` | [下载](https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/routeros/ipv6.rsc) | | `clash/iran.yaml` | [下载](https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/clash/iran.yaml) | | `sing-box/iran.json` | [下载](https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/sing-box/iran.json) | | `xray/iran.json` | [下载](https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/xray/iran.json) | | `firewall/iran.ipset` | [下载](https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/firewall/iran.ipset) | | `firewall/iran.nft` | [下载](https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/firewall/iran.nft) | | `openwrt/iran.sh` | [下载](https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/openwrt/iran.sh) | | `checksums.txt` | [下载](https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/checksums.txt) | | `iran-ip-ranges.zip` | [从 Releases 下载](https://github.com/farshidmousavii/iran-ip-ranges/releases/latest) | ### 下载二进制文件(无需 Go) 每次发布都会为不同操作系统提供预编译的二进制文件: | 操作系统 | 下载 | |-----------|--------| | Linux | [`iran-ip-linux-amd64`](https://github.com/farshidmousavii/iran-ip-ranges/releases/latest/download/iran-ip-linux-amd64) | | macOS (Apple Silicon) | [`iran-ip-darwin-arm64`](https://github.com/farshidmousavii/iran-ip-ranges/releases/latest/download/iran-ip-darwin-arm64) | | Windows | [`iran-ip-windows-amd64.exe`](https://github.com/farshidmousavii/iran-ip-ranges/releases/latest/download/iran-ip-windows-amd64.exe) | ``` # Linux / macOS chmod +x iran-ip-linux-amd64 ./iran-ip-linux-amd64 # Windows (PowerShell) .\iran-ip-windows-amd64.exe ``` ## 快速开始 ### 使用 curl 直接下载 ``` # IPv4 curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/raw/ipv4.txt # IPv6 curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/raw/ipv6.txt # Clash / Mihomo curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/clash/iran.yaml # Sing-box curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/sing-box/iran.json # Xray curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/xray/iran.json # NFTables ipset curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/firewall/iran.ipset # NFTables 配置 curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/firewall/iran.nft # OpenWRT 脚本 curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/openwrt/iran.sh # MikroTik curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/routeros/ipv4.rsc curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/routeros/ipv6.rsc ``` ### 预置配置指南 `examples/` 目录中包含现成的示例配置文件——每个文件都针对特定工具进行了完整配置: | 工具 | 示例路径 | |------|-----------| | Clash / Mihomo | [`examples/clash/config.yaml`](examples/clash/config.yaml) | | Sing-box | [`examples/sing-box/config.json`](examples/sing-box/config.json) | | Xray | [`examples/xray/config.json`](examples/xray/config.json) | | NFTables + ipset | [`examples/nftables/rules.nft`](examples/nftables/rules.nft) | | OpenWRT (防火墙) | [`examples/openwrt/firewall-config.sh`](examples/openwrt/firewall-config.sh) | | MikroTik RouterOS | [`examples/mikrotik/import-script.rsc`](examples/mikrotik/import-script.rsc) | | 分流隧道 (iptables) | [`examples/split-tunnel.sh`](examples/split-tunnel.sh) | ## 两种使用方式 ### 1. 从 GitHub 直接下载 通过 GitHub Actions,文件每 6 小时自动更新。 **三种下载方式:** - **单个文件** — 每个文件均可从 `dist/` 文件夹单独获取 - **完整压缩包 (zip)** — 所有文件每日打包发布于 [GitHub Releases](https://github.com/farshidmousavii/iran-ip-ranges/releases/latest) - **预编译二进制文件** — 从 Releases 下载您操作系统对应的可执行文件(无需 Go) ### 2. 自托管网络服务器 在您自己的服务器上运行网络服务器。两种方法: **方法 A — 下载二进制文件(更简单):** ``` # Linux amd64 wget https://github.com/farshidmousavii/iran-ip-ranges/releases/latest/download/iran-ip-linux-amd64 chmod +x iran-ip-linux-amd64 ./iran-ip-linux-amd64 ``` **方法 B — Docker:** 您也可以使用 Docker(命令见下方 Docker 部分)。 网络服务器功能: - 启动时自动获取前缀 - 通过 HTTP 提供文件服务 - 后台自动更新 - 网络中断时使用磁盘缓存 - 内置健康检查 - 优雅关闭 ## 安装 ### 选项 1 — 二进制文件(最简单) ``` # Linux amd64 wget https://github.com/farshidmousavii/iran-ip-ranges/releases/latest/download/iran-ip-linux-amd64 chmod +x iran-ip-linux-amd64 ./iran-ip-linux-amd64 ``` ### 选项 2 — 使用 Go ``` git clone https://github.com/farshidmousavii/iran-ip-ranges.git cd iran-ip-ranges go run ./cmd/ ``` ## Docker ### Docker Compose(推荐) ``` docker compose up -d ``` 生成的文件将在 `dist/` 目录中可用。 ### Docker 手动运行 ``` docker build -t iran-ip-ranges . docker run -d \ --name iran-ip-ranges \ -p 8080:8080 \ iran-ip-ranges ``` 容器以非 root 用户运行,并包含内置的健康检查。 ## 命令行参数 | 参数 | 默认值 | 描述 | | ------------- | ------- | ------------------------------------- | | `-addr` | `:8080` | 网络服务器监听地址 | | `-refresh` | `6h` | 自动更新间隔 | | `-fetch-only` | `false` | 仅获取文件,不运行网络服务器 | ## 运行方式 ### 默认模式 ``` go run ./cmd/ ``` ### 自定义监听端口 ``` go run ./cmd/ -addr :9090 ``` ### 每小时更新一次 ``` go run ./cmd/ -refresh 1h ``` ### 仅获取模式 ``` go run ./cmd/ -fetch-only ``` ## 网络端点 | 端点 | 描述 | | --------------------------- | ------------------------------- | | `GET /health` | 服务健康状态端点 | | `GET /ipv4.txt` | 查看 IPv4 列表(向后兼容) | | `GET /ipv6.txt` | 查看 IPv6 列表(向后兼容) | | `GET /ipv4.rsc` | 下载 RouterOS IPv4 脚本(向后兼容) | | `GET /ipv6.rsc` | 下载 RouterOS IPv6 脚本(向后兼容) | | `GET /routeros/ipv4.rsc` | 下载 RouterOS IPv4 脚本 | | `GET /routeros/ipv6.rsc` | 下载 RouterOS IPv6 脚本 | | `GET /clash/iran.yaml` | 下载 Clash rule-provider | | `GET /sing-box/iran.json` | 下载 Sing-box rule-set | | `GET /xray/iran.json` | 下载 Xray routing rules | | `GET /firewall/iran.ipset` | 下载 ipset restore 脚本 | | `GET /firewall/iran.nft` | 下载 nftables 配置文件 | | `GET /openwrt/iran.sh` | 下载 OpenWRT 脚本 | | `GET /raw/iran.json` | 下载原始 JSON 列表 | | `GET /raw/iran.yaml` | 下载原始 YAML 列表 | | `GET /checksums.txt` | 下载 SHA256 校验和 | 所有端点均包含: ``` Cache-Control: public, max-age=21600 ``` ## 健康检查 `/health` 端点返回 JSON: ### 正在初始化 ``` { "status": "initializing" } ``` HTTP 状态码: ``` 503 ``` ### 上次获取失败 ``` { "status": "stale", "last_fetch": "...", "last_error": "..." } ``` HTTP 状态码: ``` 503 ``` ### 状态正常 ``` { "status": "ok", "last_fetch": "..." } ``` HTTP 状态码: ``` 200 ``` ## 数据来源 数据从以下来源获取: - RIPE Stat API - 国家资源列表 (IR) ## 许可证 MIT # 英语 ## 这是什么? 使用持续更新的伊朗 CIDR 范围,自动将伊朗流量路由至您的 VPN 或代理之外。 专为 VPN 服务器、路由器、防火墙和代理服务器设计。 该项目每 6 小时从 RIPE Stat 获取伊朗宣布的 IP 前缀,进行合并和规范化,并生成多种格式的即用型输出文件。 ## 直接下载 所有输出文件均位于 `dist/` 目录下。 ### 预编译二进制文件(无需 Go) 每个版本都发布了适用于各平台的即用型二进制文件: | 平台 | 下载 | |----------|----------| | Linux | [`iran-ip-linux-amd64`](https://github.com/farshidmousavii/iran-ip-ranges/releases/latest/download/iran-ip-linux-amd64) | | macOS (Apple Silicon) | [`iran-ip-darwin-arm64`](https://github.com/farshidmousavii/iran-ip-ranges/releases/latest/download/iran-ip-darwin-arm64) | | Windows | [`iran-ip-windows-amd64.exe`](https://github.com/farshidmousavii/iran-ip-ranges/releases/latest/download/iran-ip-windows-amd64.exe) | ``` # Linux / macOS chmod +x iran-ip-linux-amd64 ./iran-ip-linux-amd64 # Windows (PowerShell) .\iran-ip-windows-amd64.exe ``` ### Clash / Mihomo - `clash/iran.yaml` - `https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/clash/iran.yaml` ### Sing-box - `sing-box/iran.json` - `https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/sing-box/iran.json` ### Xray - `xray/iran.json` - `https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/xray/iran.json` ### NFTables - `firewall/iran.ipset` - `https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/firewall/iran.ipset` - `firewall/iran.nft` - `https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/firewall/iran.nft` ### OpenWRT - `openwrt/iran.sh` - `https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/openwrt/iran.sh` ### MikroTik RouterOS - `routeros/ipv4.rsc` - `https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/routeros/ipv4.rsc` - `routeros/ipv6.rsc` - `https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/routeros/ipv6.rsc` ## 快速开始 ### 使用 curl 下载 ``` # IPv4 curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/raw/ipv4.txt # IPv6 curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/raw/ipv6.txt # Clash / Mihomo curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/clash/iran.yaml # Sing-box curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/sing-box/iran.json # Xray curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/xray/iran.json # NFTables ipset curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/firewall/iran.ipset # NFTables 配置 curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/firewall/iran.nft # OpenWRT 脚本 curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/openwrt/iran.sh # MikroTik curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/routeros/ipv4.rsc curl -O https://raw.githubusercontent.com/farshidmousavii/iran-ip-ranges/main/dist/routeros/ipv6.rsc ``` ### 示例配置 `examples/` 目录中提供了即用型的示例配置文件: | 工具 | 示例路径 | |------|-------------| | Clash / Mihomo | [`examples/clash/config.yaml`](examples/clash/config.yaml) | | Sing-box | [`examples/sing-box/config.json`](examples/sing-box/config.json) | | Xray | [`examples/xray/config.json`](examples/xray/config.json) | | NFTables + ipset | [`examples/nftables/rules.nft`](examples/nftables/rules.nft) | | OpenWRT (防火墙) | [`examples/openwrt/firewall-config.sh`](examples/openwrt/firewall-config.sh) | | MikroTik RouterOS | [`examples/mikrotik/import-script.rsc`](examples/mikrotik/import-script.rsc) | | 分流隧道 (iptables) | [`examples/split-tunnel.sh`](examples/split-tunnel.sh) | ## 两种使用模式 ### 1. 从 GitHub 下载 GitHub Actions 每 6 小时自动刷新文件。 **三种下载选项:** - **单个文件** — 每个文件可直接从 `dist/` 文件夹获取 - **完整压缩包 (zip)** — 所有文件每日打包发布于 [GitHub Releases](https://github.com/farshidmousavii/iran-ip-ranges/releases/latest) - **预编译二进制文件** — 从 Releases 下载您平台的可执行文件(无需 Go) ### 2. 自托管网络服务器 在您自己的机器上运行网络服务器。两种方法: **选项 A — 下载二进制文件(更简单):** ``` # Linux amd64 wget https://github.com/farshidmousavii/iran-ip-ranges/releases/latest/download/iran-ip-linux-amd64 chmod +x iran-ip-linux-amd64 ./iran-ip-linux-amd64 ``` **选项 B — Docker:** 您也可以使用 Docker(见下方 Docker 部分)。 功能: - 启动时获取前缀 - 通过 HTTP 提供文件服务 - 后台自动刷新 - 磁盘缓存备用方案 - 内置健康检查 - 优雅关闭 ## 安装 ### 选项 1 — 二进制文件(最简单) ``` # Linux amd64 wget https://github.com/farshidmousavii/iran-ip-ranges/releases/latest/download/iran-ip-linux-amd64 chmod +x iran-ip-linux-amd64 ./iran-ip-linux-amd64 ``` ### 选项 2 — 使用 Go ``` git clone https://github.com/farshidmousavii/iran-ip-ranges.git cd iran-ip-ranges go run ./cmd/ ``` ## Docker ### Docker Compose(推荐) ``` docker compose up -d ``` 生成的文件将在 `dist/` 目录中可用。 ### Docker ``` docker build -t iran-ip-ranges . docker run -d \ --name iran-ip-ranges \ -p 8080:8080 \ iran-ip-ranges ``` 容器以非 root 用户运行,并包含内置健康检查。 ## 命令行参数 | 参数 | 默认值 | 描述 | | ------------- | ------- | ------------------------- | | `-addr` | `:8080` | 网络服务器监听地址 | | `-refresh` | `6h` | 自动刷新间隔 | | `-fetch-only` | `false` | 获取文件后退出 | ## 使用方式 ### 默认模式 ``` go run ./cmd/ ``` ### 自定义监听地址 ``` go run ./cmd/ -addr :9090 ``` ### 每小时刷新 ``` go run ./cmd/ -refresh 1h ``` ### 仅获取模式 ``` go run ./cmd/ -fetch-only ``` ## 网络端点 | 端点 | 描述 | | --------------------------- | --------------------------------- | | `GET /health` | 服务健康端点 | | `GET /ipv4.txt` | 查看 IPv4 列表(向后兼容) | | `GET /ipv6.txt` | 查看 IPv6 列表(向后兼容) | | `GET /ipv4.rsc` | 下载 RouterOS(向后兼容) | | `GET /ipv6.rsc` | 下载 RouterOS(向后兼容) | | `GET /routeros/ipv4.rsc` | 下载 RouterOS IPv4 脚本 | | `GET /routeros/ipv6.rsc` | 下载 RouterOS IPv6 脚本 | | `GET /clash/iran.yaml` | 下载 Clash rule-provider | | `GET /sing-box/iran.json` | 下载 Sing-box rule-set | | `GET /xray/iran.json` | 下载 Xray routing rules | | `GET /firewall/iran.ipset` | 下载 ipset restore 脚本 | | `GET /firewall/iran.nft` | 下载 nftables 配置文件 | | `GET /openwrt/iran.sh` | 下载 OpenWRT 脚本 | | `GET /raw/iran.json` | 下载原始 JSON 列表 | | `GET /raw/iran.yaml` | 下载原始 YAML 列表 | | `GET /checksums.txt` | 下载 SHA256 校验和 | 所有文件端点均包含: ``` Cache-Control: public, max-age=21600 ``` ## 健康检查 `/health` 端点返回 JSON: ### 正在初始化 ``` { "status": "initializing" } ``` HTTP 状态码: ``` 503 ``` ### 上次获取失败 ``` { "status": "stale", "last_fetch": "...", "last_error": "..." } ``` HTTP 状态码: ``` 503 ``` ### 状态正常 ``` { "status": "ok", "last_fetch": "..." } ``` HTTP 状态码: ``` 200 ``` ## 数据来源 数据从以下来源获取: - RIPE Stat API - 国家资源列表 (IR) ## 许可证 MIT
标签:certspotter, CIDR, Clash, EVTX分析, GeoIP, IPv4, IPv6, IP 列表, IP 管理, MacOS取证, MikroTik, PowerShell, Sing-box, Xray, 代理, 伊朗, 地理定位, 文档结构分析, 无文件攻击, 日志审计, 流量控制, 网络安全, 网络配置, 自动更新, 请求拦截, 路由, 防火墙, 防火墙规则, 隐私保护