Add source CIDR bypass for TProxy

This commit is contained in:
2026-05-24 13:26:03 +03:00
parent 12ad0c8b78
commit 0092ec4cde
4 changed files with 97 additions and 0 deletions

View File

@@ -75,6 +75,7 @@ docker compose -f docker-compose.client.yml restart
iptables mangle PREROUTING → цепочка VPN_PROXY_TPROXY
├─ source bypass CIDR → RETURN ← устройства мимо sing-box
├─ ipset vpn_direct_bypass (dst IP) → RETURN ← опциональный bypass-кэш
├─ приватные CIDR (RFC1918, ...) → RETURN
└─ TCP/UDP → TPROXY :7895
@@ -128,6 +129,7 @@ ip route replace local 0.0.0.0/0 dev lo table 100
iptables -t mangle -N VPN_PROXY_TPROXY
-m addrtype --dst-type LOCAL → RETURN # ответы самого sing-box
-m mark --mark 1 → RETURN # уже помеченные пакеты
-s 192.168.50.25/32 → RETURN # TPROXY_BYPASS_SOURCE_CIDRS
-m set --match-set vpn_direct_bypass → RETURN # только если DIRECT_BYPASS_CACHE=true
-d 10.0.0.0/8, 192.168.0.0/16, ... → RETURN # приватные адреса
-p tcp → TPROXY :7895 mark 1
@@ -377,6 +379,7 @@ UI доступен на `http://<gateway-ip>:3456`.
| `INSTALL_SINGBOX` | `true` | Скачивать sing-box в Docker build; `false` для подготовленного runtime base |
| `PROXY_PORT` | `8080` | HTTP/SOCKS mixed inbound |
| `TPROXY_PORT` | `7895` | TProxy inbound sing-box |
| `TPROXY_BYPASS_SOURCE_CIDRS` | unset | Source CIDR устройств, которые должны идти напрямую мимо TProxy/sing-box, например `192.168.50.25/32` |
| `DATA_DIR` | `/var/lib/vpn-proxy` | Директория данных (volume) |
| `ROUTING_RU_DIRECT` | `true` | geoip-ru/geosite-ru → direct |
| `LOG_LEVEL` | `info` | Уровень логов sing-box |