Freedom: Add ipsBlocked (supports IP, CIDR, "geoip:", "ext:") and apply a default safe policy

This commit is contained in:
Meow
2026-04-16 06:25:25 +08:00
parent 96f0a5557b
commit 44dda974c1
3 changed files with 36 additions and 3 deletions
+12 -1
View File
@@ -21,7 +21,8 @@ Freedom 是一个出站协议,可以用来向任意网络发送(正常的)
"delay": "10-16"
}
],
"proxyProtocol": 0
"proxyProtocol": 0,
"ipsBlocked": [] // 显式设为空可关闭默认私有 IP 拦截
}
```
@@ -88,3 +89,13 @@ UDP noise, 用于在发出UDP连接前发出一些随机数据作为“噪声”
PROXY protocol 通常配合 `redirect` 重定向到开启了 PROXY protocol 协议的 Nginx 或其他后端服务中。如果后端服务不支持 PROXY protocol 协议,连接将会被断开。
proxyProtocol 的值为 PROXY protocol 版本号,可选 `1``2`,如不指定,默认为 `0` 不启用。
> `ipsBlocked`: [string]
用于指定一组禁止连接的 IP 范围,格式与 [路由配置](../routing.md#ruleobject) 中的 IP 规则相同。
配置后,Freedom 会阻止连接到这些 IP 范围。常用于服务端限制直连出站,例如封锁内网地址,或阻止流量经 Freedom 直接回国。
如果未显式配置 `ipsBlocked`,且入站协议为 `VLESS``VMess``Trojan``Shadowsocks``Hysteria``WireGuard`,Freedom 会默认阻止私有 IP。
相比在 `routing` 中封锁,这种方式更严谨、更彻底,且对于 UDP 会逐包匹配,每个仅耗时 50ns;如需关闭此默认策略,可显式设置 `ipsBlocked: []`
+12 -1
View File
@@ -21,7 +21,8 @@ Freedom is an outbound protocol used to send (normal) TCP or UDP data to any net
"delay": "10-16"
}
],
"proxyProtocol": 0
"proxyProtocol": 0,
"ipsBlocked": [] // Set explicitly to empty to disable default private IP blocking
}
```
@@ -88,3 +89,13 @@ It is an array where multiple noise packets to be sent can be defined. A single
PROXY protocol is usually used with `redirect` to redirect traffic to Nginx or other backend services that have the PROXY protocol enabled. If the backend service does not support PROXY protocol, the connection will be disconnected.
The value of `proxyProtocol` is the PROXY protocol version number. Options are `1` or `2`. If not specified, it defaults to `0` (disabled).
> `ipsBlocked`: [string]
Used to specify a list of blocked IP ranges. The format is the same as the IP rules in [Routing](../routing.md#ruleobject).
When configured, Freedom blocks connections to these IP ranges. This is commonly used on servers to restrict direct outbound access, such as blocking private networks or preventing traffic from going to China directly through Freedom.
If `ipsBlocked` is not explicitly configured, and the inbound protocol is `VLESS`, `VMess`, `Trojan`, `Shadowsocks`, `Hysteria`, or `WireGuard`, Freedom will block private IPs by default.
Compared to blocking in `routing`, this approach is stricter and more thorough, and for UDP it matches packet by packet, with each match taking only 50 ns; to disable this default behavior, explicitly set `ipsBlocked: []`.
+12 -1
View File
@@ -21,7 +21,8 @@ Freedom — это исходящий протокол, который можн
"delay": "10-16"
}
],
"proxyProtocol": 0
"proxyProtocol": 0,
"ipsBlocked": [] // Явно укажите пустой список, чтобы отключить блокировку частных IP по умолчанию
}
```
@@ -87,3 +88,13 @@ UDP-шум, используемый для отправки случайных
Протокол PROXY обычно используется в сочетании с `redirect` для перенаправления на сервер Nginx или другой сервер, на котором включен протокол PROXY. Если сервер не поддерживает протокол PROXY, соединение будет разорвано.
`proxyProtocol` принимает значение номера версии протокола PROXY — `1` или `2`. Если не указано, по умолчанию используется значение `0` (протокол не используется).
> `ipsBlocked`: [string]
Используется для указания списка запрещенных диапазонов IP. Формат совпадает с IP-правилами в [Routing](../routing.md#ruleobject).
Если этот параметр задан, Freedom будет блокировать соединения с этими диапазонами IP. Обычно это используется на сервере для ограничения прямого исходящего трафика, например для блокировки внутренних сетей или запрета трафика в Китай напрямую через Freedom.
Если `ipsBlocked` не задан явно, а входящий протокол — `VLESS`, `VMess`, `Trojan`, `Shadowsocks`, `Hysteria` или `WireGuard`, Freedom по умолчанию блокирует частные IP.
По сравнению с блокировкой в `routing`, этот способ строже и надежнее, а для UDP проверка выполняется для каждого пакета, при этом каждая проверка занимает всего 50 нс; чтобы отключить это поведение по умолчанию, явно укажите `ipsBlocked: []`.