Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 0 additions & 37 deletions CONTRIBUTING.md

This file was deleted.

120 changes: 39 additions & 81 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,112 +2,70 @@

<p align="center">
<a href="https://github.com/KuGouGo/Rules/actions/workflows/build.yml"><img alt="Sync Rules" src="https://github.com/KuGouGo/Rules/actions/workflows/build.yml/badge.svg?branch=main"></a>
<a href="https://github.com/KuGouGo/Rules/actions/workflows/pull-request.yml"><img alt="Pull Request Validation" src="https://github.com/KuGouGo/Rules/actions/workflows/pull-request.yml/badge.svg?branch=main"></a>
<img alt="Platforms" src="https://img.shields.io/badge/platforms-Surge%20%7C%20Quantumult%20X%20%7C%20Egern%20%7C%20sing--box%20%7C%20mihomo-2f6f6f">
<img alt="Repository code license" src="https://img.shields.io/badge/repository%20code-MIT-4b5563">
</p>

本仓库用于个人维护自定义规则并整合上游数据,生成 Surge、Quantumult X、Egern、sing-box 与 mihomo 规则。`main` 保存源码、配置和工作流;可直接使用的文件位于对应平台分支
个人自用规则仓库:维护自定义规则,拉取并整合上游数据,自动生成多个客户端的规则文件

> [!IMPORTANT]
> 客户端不要引用 `main`。规则名称和区域分类沿用上游定义,不构成准确性、完整性或适用性保证。第三方内容不因格式转换而自动适用本仓库的 MIT 许可,详见 [`NOTICE`](NOTICE) 与 [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md)。
> 客户端不要引用 `main`,请使用对应的产物分支。

## 获取产物
## 产物

分支 URL 格式:
| 客户端 | 分支 | 格式 |
| --- | --- | --- |
| Surge | [`surge`](https://github.com/KuGouGo/Rules/tree/surge) | `.list` |
| Quantumult X | [`quanx`](https://github.com/KuGouGo/Rules/tree/quanx) | `.list` |
| Egern | [`egern`](https://github.com/KuGouGo/Rules/tree/egern) | `.yaml` |
| sing-box | [`sing-box`](https://github.com/KuGouGo/Rules/tree/sing-box) | `.srs` |
| mihomo | [`mihomo`](https://github.com/KuGouGo/Rules/tree/mihomo) | `.mrs` |

URL 格式:

```text
https://raw.githubusercontent.com/KuGouGo/Rules/{branch}/{type}/{name}.{extension}
https://raw.githubusercontent.com/KuGouGo/Rules/{branch}/{domain|ip}/{name}.{extension}
```

| 客户端 | 分支 | domain / ip 扩展名 | 分支说明 |
| --- | --- | --- | --- |
| Surge | `surge` | `.list` | [查看产物](https://github.com/KuGouGo/Rules/tree/surge) |
| Quantumult X | `quanx` | `.list` | [查看产物](https://github.com/KuGouGo/Rules/tree/quanx) |
| Egern | `egern` | `.yaml` | [查看产物](https://github.com/KuGouGo/Rules/tree/egern) |
| sing-box | `sing-box` | `.srs` | [查看产物](https://github.com/KuGouGo/Rules/tree/sing-box) |
| mihomo | `mihomo` | `.mrs` | [查看产物](https://github.com/KuGouGo/Rules/tree/mihomo) |

示例:

```text
https://raw.githubusercontent.com/KuGouGo/Rules/surge/domain/cn.list
https://raw.githubusercontent.com/KuGouGo/Rules/quanx/domain/emby-cn.list
https://raw.githubusercontent.com/KuGouGo/Rules/egern/ip/cn.yaml
https://raw.githubusercontent.com/KuGouGo/Rules/sing-box/domain/cn.srs
https://raw.githubusercontent.com/KuGouGo/Rules/sing-box/domain/fakeip-filter.srs
https://raw.githubusercontent.com/KuGouGo/Rules/mihomo/ip/google.mrs
```

各平台的接入方式和最小配置示例位于对应产物分支的 `README.md`。分支 URL 会随成功发布变化,不适合作为不可变版本标识;需要固定内容时,应将分支名替换为产物分支的提交 SHA。

## 规则说明

| 名称 | 类型 | 当前生成方式 |
| --- | --- | --- |
| `cn` | domain | v2fly/domain-list-community 的 `cn` 集合及其派生结果 |
| `cn` | ip | 配置的中国大陆 IP 上游经规范化、去重和 CIDR 合并后的结果 |
| `geolocation-cn` / `geolocation-!cn` | domain | 上游提供的区域集合名称与内容 |
| `google` / `telegram` | ip | 配置的服务地址源;Telegram 结果还合并配置的 ASN 前缀 |
| `emby-cn` / `emby` | domain | 本仓库维护的两个 Emby 规则集合 |
| `fakeip-filter` | domain | 本仓库维护的 Fake-IP 排除集合 |

在按首条命中处理的客户端中,如果同时使用 `emby-cn` 和 `emby`,应先加载范围较窄的 `emby-cn`。规则文件会随上游增加、删除或改变;使用前应在目标分支确认文件存在并检查内容。

## 转换行为
常用规则包括 `cn`、`geolocation-cn`、`geolocation-!cn`、`google`、`telegram`、`emby-cn`、`emby` 和 `fakeip-filter`。同时使用 `emby-cn` 与 `emby` 时,应先加载范围较小的 `emby-cn`。

| 产物平台 | 精确域名 | 后缀 | 关键词 | 正则 | IP CIDR |
| --- | :---: | :---: | :---: | :---: | :---: |
| Surge | ✓ | ✓ | ✓ | — | ✓ |
| Quantumult X | ✓ | ✓ | ✓ | — | ✓ |
| Egern | ✓ | ✓ | ✓ | ✓ | ✓ |
| sing-box | ✓ | ✓ | ✓ | ✓ | ✓ |
| mihomo | ✓ | ✓ | — | — | ✓ |
## 添加自定义规则

`✓` 表示当前转换器会保留并输出该类型,`—` 表示当前转换链会省略该类型;该表不判断客户端自身的全部能力。一个列表在目标平台没有可保留条目时,不发布空文件。
- 域名规则:`sources/custom/domain/*.list`
- IP 规则:`sources/custom/ip/*.list`
- 文件名使用小写字母、数字和连字符。

属性与区域名称沿用上游语义:
```text
DOMAIN,api.example.com
DOMAIN-SUFFIX,example.com
DOMAIN-KEYWORD,example
DOMAIN-REGEX,^(.+\.)?example\.com$
IP-CIDR,192.0.2.0/24
IP-CIDR6,2001:db8::/32
```

- `name@cn`、`name@!cn`、`name@ads` 是属性派生集合,`@!cn` 不是布尔取反。
- `*-cn`、`*-!cn` 是区域列表名称;明显冗余的属性派生不会发布。
- `official`、`registry`、`community` 是仓库配置中的来源分类,不代表质量、可信度或许可等级。
不同文件可以按策略需要重叠;同一文件内不要保留重复或被更宽规则覆盖的条目。

## 本地维护
## 本地检查

本地命令要求 Bash 5+、Python 3.11+、GNU Make 和 Git。macOS 可使用 Homebrew Bash 与 Python 运行检查和文本构建;需要下载 sing-box 或 mihomo 的二进制构建只支持 lock 文件声明的 Linux 平台
需要 Bash 5+、Python 3.11+、GNU Make 和 Git。

```bash
make check
make validate
make build-custom-text
make preflight
make clean
make check # 日常快速检查
make validate # 完整测试
make build-custom-text # 预览自定义文本产物
make clean # 清理生成文件
```

- `make check`:快速检查脚本语法、配置和自定义规则,适合日常改规则。
- `make validate`:在快速检查基础上运行完整测试。
- `make build-custom-text`:生成自定义文本产物,不下载二进制工具。
- `make preflight`:执行 `make validate` 和自定义文本构建;不执行上游完整同步、二进制构建或发布。
- `make clean`:删除生成产物和临时文件,保留已校验的工具缓存。

完整环境、构建事务和调试命令见 [开发指南](docs/DEVELOPMENT.md)。

## 仓库边界

- 长期分支只保留 `main` 与 `surge`、`quanx`、`egern`、`sing-box`、`mihomo` 五个产物分支。
- 日常变更可直接提交,也可通过 Pull Request;PR 只运行基础校验,完整生成和发布由 `main` 工作流负责。
- `main` 在构建相关路径变化、定时任务运行或人工触发时执行发布工作流;产物内容没有变化时不会创建新的产物分支提交。
- 不启用自动依赖 PR;GitHub Actions 版本按需手工更新。
- `fakeip-filter` 是本仓库维护的文本源,不下载第三方预编译文件。
- 构建摘要、manifest 和 CI 通过都不是第三方许可证明。
- 规则按现状提供。使用者需自行判断策略、顺序和更新带来的影响,并保留可回退版本。

## 文档

| 文档 | 内容 |
| --- | --- |
| [贡献指南](CONTRIBUTING.md) | 规则格式、来源要求和评审清单 |
| [开发指南](docs/DEVELOPMENT.md) | 环境、命令和开发流程 |
| [仓库结构](docs/STRUCTURE.md) | 同步、构建、manifest、守卫和发布架构 |
| [故障排查](docs/TROUBLESHOOTING.md) | 常见构建和产物问题 |
| [安全政策](SECURITY.md) | 安全问题报告范围与方式 |
| [第三方声明](THIRD_PARTY_NOTICES.md) | 上游来源和人工许可核对状态 |
更多维护命令见 [`docs/DEVELOPMENT.md`](docs/DEVELOPMENT.md)。推送到 `main` 后,GitHub Actions 会自动构建并更新五个平台分支;每天也会定时同步一次上游。

## 声明

规则按现状提供,上游内容可能随时变化,请自行确认使用策略并保留回退版本。仓库代码使用 MIT License;第三方内容仍遵循各自条款,来源见 [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md)。
41 changes: 0 additions & 41 deletions SECURITY.md

This file was deleted.

76 changes: 20 additions & 56 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
@@ -1,56 +1,20 @@
# 第三方声明

本文件记录当前已知第三方输入及截至 **2026-07-15** 的人工核对状态。它不是自动生成清单,也不是法律意见。`trust` 只表示采集来源分类;公开可访问、官方托管、注册机构提供或 CI 成功都不等于获得复制、修改或再分发授权。

标准 MIT License 位于 [`LICENSE`](LICENSE),适用范围见 [`NOTICE`](NOTICE)。第三方材料不会因下载、规范化、合并、转换或编译而变为本仓库的 MIT 内容。

## 已确认的上游许可证

| 输入 | 来源 | 人工核对结果 | 说明 |
| --- | --- | --- | --- |
| `domain.dlc` | [v2fly/domain-list-community](https://github.com/v2fly/domain-list-community) | MIT License,`Copyright (c) 2018-2019 V2Ray` | 上游 [LICENSE](https://raw.githubusercontent.com/v2fly/domain-list-community/master/LICENSE) 明确声明;再分发时仍需保留其版权与许可声明。 |

“已确认”只表示链接材料中存在明确许可证,不代表自动化验证了每次下载内容、上游全部依赖或具体使用方式。

## 许可或再分发权尚未确认

以下项目统一标记为“未知”。维护者必须在相关合并或发布前人工评审许可证、服务条款、数据来源和适用义务;脚本不会读取本表或据此自动阻断。

| 输入 | 来源 | 分类 | 人工核对状态 |
| --- | --- | --- | --- |
| `ip.cn-ipv46` | <https://ispip.clang.cn/all_cn_ipv46.txt> | `registry` | 未知;响应中未见明确数据许可证。 |
| `ip.loyalsoldier-geoip-cn`、`ip.loyalsoldier-geoip-private` | [Loyalsoldier/geoip](https://github.com/Loyalsoldier/geoip) `release` 分支 | `community` | 未知;`master` 的 CC BY-SA 4.0 不能自动证明 `release` 聚合产物及全部来源适用相同许可。 |
| `ip.cn-ipv46-apnic` | <https://ispip.clang.cn/all_cn_ipv46_apnic.txt> | `registry` | 未知;名称提及 APNIC 不等于已获 APNIC 再分发授权。 |
| `ip.google` | <https://www.gstatic.com/ipranges/goog.json> | `official` | 未知;响应中未见独立数据许可证。 |
| `ip.telegram` | <https://core.telegram.org/resources/cidr.txt> | `official` | 未知;响应中未见独立数据许可证。 |
| `ip.cloudflare-ipv4`、`ip.cloudflare-ipv6` | <https://www.cloudflare.com/ips-v4>、<https://www.cloudflare.com/ips-v6> | `official` | 未知;未确认独立数据许可证。 |
| `ip.aws`、`ip.cloudfront` | <https://ip-ranges.amazonaws.com/ip-ranges.json> | `official` | 未知;两个解析器复用同一官方响应,未见独立数据许可证。 |
| `ip.fastly` | <https://api.fastly.com/public-ip-list> | `official` | 未知;响应中未见独立数据许可证。 |
| `ip.github` | <https://api.github.com/meta> | `official` | 未知;未确认 Meta API 数据的独立再分发许可证。 |
| `ip.apple` | <https://support.apple.com/en-us/101555>(回退:<https://support.apple.com/zh-cn/101555>) | `official` | 未知;未确认页面中网络范围数据的独立再分发许可证。 |
| `ip.ripe-stat` | <https://stat.ripe.net/data/announced-prefixes/data.json?resource=AS> | `registry` | 未知;未确认 API 响应和 ASN 查询所得前缀集合的再分发许可。 |

`asn_groups.telegram`、`asn_groups.netflix`、`asn_groups.spotify` 和 `asn_groups.disney` 只是 RIPEstat 查询参数分组,不是独立许可声明;所得结果沿用 `ip.ripe-stat` 的“未知”状态。组织名称和商标归各自权利人所有。

## Fake-IP

当前 `fakeip-filter` 是 KuGouGo 在 `sources/custom/domain/fakeip-filter.list` 维护的仓库源码,由自定义构建生成各平台文本产物以及 sing-box、mihomo 二进制产物;它不属于第三方输入,也不下载第三方预编译文件。

## 审计与评审边界

- `config/upstreams.json` 覆盖主上游规则网络输入;工具资产下载另由工具 lock 控制。当前没有 Fake-IP 网络输入或独立同步步骤。
- `.output/upstream-summary.json` 只覆盖主同步记录,不覆盖本仓库自定义源(包括 `fakeip-filter`)、完整转换链或 HTTP 响应身份,因此不是完整来源追溯记录。
- `.output/build-summary.json` 由成功构建事务在产物守卫后生成并受 manifest 摘要绑定;它只说明事务产物统计,不证明来源或授权。
- 当前自动化不解析 `NOTICE` 或本文件,不验证第三方许可,也不会因“未知”状态自动失败。
- 新增、更换或改变第三方输入时,应同步更新本文件并提供可核验依据;无法确认时保持“未知”,由维护者人工决定停止、替换、取得授权或满足适用义务后再发布。

## 文档导航

- [`README.md`](README.md):用户入口、平台示例和关键边界
- [`CONTRIBUTING.md`](CONTRIBUTING.md):贡献规则与人工评审清单
- [`docs/README.md`](docs/README.md):文档职责与阅读路径
- [`docs/DEVELOPMENT.md`](docs/DEVELOPMENT.md):环境、命令和开发流程
- [`docs/STRUCTURE.md`](docs/STRUCTURE.md):构建、产物、守卫和发布结构
- [`docs/TROUBLESHOOTING.md`](docs/TROUBLESHOOTING.md):常见失败与定位步骤
- [`SECURITY.md`](SECURITY.md):安全支持范围和私密报告
- [`NOTICE`](NOTICE) / [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md):许可范围与第三方状态
# 第三方来源

仓库代码使用 [MIT License](LICENSE)。下列上游数据仍遵循各自的许可证或服务条款,不因本仓库进行下载、合并或格式转换而变为 MIT 内容。

| 内容 | 来源 |
| --- | --- |
| 域名规则 | [v2fly/domain-list-community](https://github.com/v2fly/domain-list-community)(MIT) |
| 中国 IP | <https://ispip.clang.cn/all_cn_ipv46.txt>、<https://ispip.clang.cn/all_cn_ipv46_apnic.txt>、[Loyalsoldier/geoip](https://github.com/Loyalsoldier/geoip) |
| Google IP | <https://www.gstatic.com/ipranges/goog.json> |
| Telegram IP | <https://core.telegram.org/resources/cidr.txt> |
| Cloudflare IP | <https://www.cloudflare.com/ips-v4>、<https://www.cloudflare.com/ips-v6> |
| AWS / CloudFront IP | <https://ip-ranges.amazonaws.com/ip-ranges.json> |
| Fastly IP | <https://api.fastly.com/public-ip-list> |
| GitHub IP | <https://api.github.com/meta> |
| Apple 网络范围 | <https://support.apple.com/en-us/101555> |
| ASN 前缀 | [RIPEstat](https://stat.ripe.net/) |

除 v2fly/domain-list-community 明确使用 MIT License 外,本仓库不对其他上游数据的再分发许可作保证。使用者应自行确认相关条款。

`fakeip-filter`、`emby`、`emby-cn` 和 `apple-apns` 的本地源位于 `sources/custom/`。当前完整上游配置以 [`config/upstreams.json`](config/upstreams.json) 为准。
Loading