Files
proxy-station/docs/ADDING-REGIONS.md
2026-08-25 11:35:05 +08:00

136 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 新增地区与新增站点
当舰队里加入新地区(香港、日本、韩国、台湾、英国……)的节点时,按本文操作。
> 背景:策略组的地区筛选靠**节点名称正则**,不靠节点的 `region` 字段。所以节点命名是一切的前提。
## 当前状态2026-08-24
只有美国与新加坡两个地区的节点,因此策略组里只有 `🇺🇸 United States``🇸🇬 Singapore` 两个地区组。
香港、日本、台湾、英国、韩国的地区组**已删除**——留着会是空组,在客户端里显示为无可用节点。
兜底的 `🌍 Other` 组也已删除:所有节点都能被现有两个地区组收纳,它恒为空。
## 一、给新节点命名(决定它能被哪个组收纳)
命名格式:`<国旗> <国家码> · <站点码> · <协议> · <出口>`
```
🇭🇰 HK · VMess · 直连
🇯🇵 JP · Trojan · WARP
🇺🇸 US · LA · VMess · 直连 ← 同国多站点时插入站点码
```
- **国家码必须出现在名字里**HKJPUSSG…地区组的正则靠它匹配
- 出口词(`直连` / `WARP`)必须保留:客户端里没有出口标签,用户只能靠名字区分同协议的两条线路。界面上显示时会自动隐去,不必担心重复
- 站点码LARNAWS用于节点页的分段归类来自节点的 `region` 字段
节点的 `region` 字段填站点码(`SG``LA``RN``HK`…),它决定节点页里归到哪一段。
## 二、让站点标题显示国旗
`web/src/components/stations.ts``STATION_LABELS` 加一行:
```ts
const STATION_LABELS: Record<string, string> = {
SG: '🇸🇬 SG AWS',
LA: '🇺🇸 US LA',
RN: '🇺🇸 US RN',
HK: '🇭🇰 HK 香港站点名', // ← 新增
};
```
未配置的站点码会原样显示,不影响功能。
## 三、新建地区策略组
在「策略组」页点「添加策略组」,按下表填写:
| 字段 | 值 |
|---|---|
| 名称 | `🇭🇰 Hong Kong`emoji 前缀 + 英文原名) |
| 类型 | `url-test` |
| 成员 | 留空 |
| 收纳全部节点 | **开启** |
| 名称筛选正则 | 见下方对照表 |
| 测速 URL | `http://cp.cloudflare.com/generate_204` |
| 间隔 | `300` |
| 容差 | `50` |
「收纳全部节点」+「筛选正则」的组合会生成 `include-all-proxies=true, policy-regex-filter=…`Surge`include-all-proxies: true, filter: …`Clash`use=true, policy-regex-filter=…`ShadowRocket三端都是**动态筛选**——之后再加同地区节点会自动进组,不用改配置。
各地区的正则(取自原模板,可直接复制):
```
香港 港|🇭🇰|香港|HK|Hong
日本 日|🇯🇵|日本|JP|Japan
台湾 台|🇹🇼|台湾|TW|Tai
韩国 韩|韩国|Korea|KR|🇰🇷
英国 🇬🇧|英国|英|英格兰|UK|United Kingdom
新加坡 坡|🇸🇬|新加坡|狮城|SG|Singapore
美国 美|🇺🇸|美国|US|States|American
```
## 四、兜底组 `🌍 Other`(当前不存在)
原模板有一个 `🌍 Other` 组,用否定前瞻正则收纳「不属于任何已建地区组」的节点。**当前已删除**,因为现有节点都能被美/新两个组收纳,它恒为空。
只有当你加入的节点**不属于任何已建地区组**(比如加了德国节点但没建德国组)时,才需要重建它:
| 字段 | 值 |
|---|---|
| 名称 | `🌍 Other` |
| 类型 | `url-test`,收纳全部节点开启 |
| 筛选正则 | 见下(把所有**已建**地区组的关键字排除掉) |
```
^((?!港|🇭🇰|香港|HK|Hong|日|🇯🇵|日本|JP|Japan|坡|🇸🇬|新加坡|狮城|SG|Singapore|美|🇺🇸|美国|US|States|American|Remain|Expired|官网|如需|套餐|去除|剩余|距离|Reset|重置|流量).)+$
```
**如果重建了 Other每次新增地区组都必须往这个否定前瞻里追加对应关键字**,否则新地区节点会同时出现在自己的组和 Other 里。
## 五、把新地区加进服务组的可选项
新建地区组后,它不会自动出现在服务组的成员里。按需编辑这些组,把新地区加进成员列表:
| 组 | 当前成员 | 建议 |
|---|---|---|
| `⚡️ Automatic` | SG、US | 加入所有地区组 |
| `🚀 Proxy` | Automatic、SG、US | 加入所有地区组 |
| `🎬 Streaming` | SG、US | 加入解锁能力强的地区HK/TW/JP |
| `🤖 AI` | Automatic、US、SG | 加入 JP、US 等 AI 服务可用地区 |
| `🌐 Global Services` | Automatic、US、SG | 同 AI |
| `🍎 Apple` | Mainland、US | 按需加入 HK |
成员的顺序就是客户端里的排列顺序,**第一个成员是该组的默认选中项**。
## 六、地区流媒体解锁规则(可选)
模板原有 `stream_hk``stream_jp``stream_tw``stream_kr``stream_eu` 等按地区解锁的规则集。删除地区组时,这些规则被改指向了 `🎬 Streaming`
如果新建了对应地区组,可以在「规则」页把这些规则的策略改回该地区组,解锁效果更精准:
| 规则集 | 建议策略 |
|---|---|
| `stream_hk`non_ip + ip 两条) | `🇭🇰 Hong Kong` |
| `stream_jp`(两条) | `🇯🇵 Japan` |
| `stream_tw``stream_kr``stream_eu` | 对应地区组 |
## 七、验证
1. 「策略组」页:新地区组的**命中**一栏应列出该地区的所有节点
2. 「节点」页:新站点应有独立分段,标题显示国旗
3. 命令行校验 Clash 产物:
```bash
curl -s "http://<host>/sub/<token>/clash" > /tmp/c.yaml && mihomo -t -f /tmp/c.yaml
```
4. 若重建过 `🌍 Other`,确认它的命中里**不再包含**新地区节点
## 删除某个地区(反向操作)
1. 把指向该组的规则改指向别的组否则规则会被自动跳过——IR 层有悬空引用防护,但那是兜底不是意图)
2. 从其他组的成员里摘掉它
3. 删除该组
4. Other 的排除列表可以保留该地区关键字(留着无害,将来重建时省事)
> 上述 13 步如果漏做生成器不会产出无效配置悬空引用会被自动跳过、FINAL 会降级为 DIRECT但分流意图会悄悄改变所以要显式处理。