Make shadow traffic inspection the default
This commit is contained in:
+1
-1
@@ -10,7 +10,7 @@ INSTALL_SINGBOX=true
|
||||
PROXY_PORT=8080
|
||||
PROXY_BIND_IP=0.0.0.0
|
||||
SING_BOX_API_PORT=19090
|
||||
SING_BOX_TRAFFIC_SOURCE=snapshot
|
||||
SING_BOX_TRAFFIC_SOURCE=shadow
|
||||
TPROXY_PORT=7895
|
||||
TPROXY_MARK=1
|
||||
TPROXY_TABLE=100
|
||||
|
||||
@@ -271,14 +271,14 @@ curl -fsSL https://git.dokops.ru/dokril/vpn-proxy/raw/branch/master/install.sh |
|
||||
| `PROXY_ALLOWED_CIDRS` | приватные IPv4-сети | Сети, которым разрешён доступ к Gateway Proxy |
|
||||
| `GATEWAY_CLIENT_CIDRS` | приватные IPv4-сети | Сети, трафик которых Gateway может маршрутизировать |
|
||||
| `DIRECT_TRAFFIC_MARK` | `0x40000000` | Зарезервированный одиночный connmark-бит учёта Direct; измените при конфликте с host QoS/firewall, не пересекаясь с `TPROXY_MARK` |
|
||||
| `SING_BOX_TRAFFIC_SOURCE` | `snapshot` | Источник Gateway traffic counters: `snapshot`, `shadow` или `native` |
|
||||
| `SING_BOX_TRAFFIC_SOURCE` | `shadow` | Источник Gateway traffic counters: `snapshot`, `shadow` или `native` |
|
||||
| `LOG_LEVEL` | `info` | Уровень подробности журнала |
|
||||
|
||||
Остальные значения в `.env.example` относятся к сборке контейнера и внутренней маршрутизации. Меняйте их только при нестандартном развёртывании.
|
||||
|
||||
После изменения `.env` пересоздайте контейнер командой `up -d` — обычного `restart` недостаточно.
|
||||
|
||||
`snapshot` сохраняет прежний опрос Clash API раз в 2 секунды. `shadow` дополнительно читает native lifecycle, но оставляет snapshot единственным источником публичных totals. `native` делает lifecycle единственным writer и не опрашивает `/connections`; Clash API остаётся только для selector/failover. Режим меняется только при пересоздании обоих Gateway-контейнеров и не переключается автоматически при ошибке.
|
||||
Production Gateway по умолчанию использует `shadow`: инспектор показывает native lifecycle, но snapshot остаётся единственным источником публичных totals. `snapshot` полностью выключает инспектор и сохраняет прежний опрос Clash API раз в 2 секунды. `native` делает lifecycle единственным writer и не опрашивает `/connections`; Clash API остаётся только для selector/failover. Режим меняется только при пересоздании обоих Gateway-контейнеров и не переключается автоматически при ошибке.
|
||||
|
||||
Rollback сохраняет volumes и возвращает прежний writer:
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ services:
|
||||
DATA_DIR: /var/lib/vpn-proxy
|
||||
SING_BOX_CONFIG: /var/lib/vpn-proxy/sing-box-config.json
|
||||
SING_BOX_CACHE: /var/lib/sing-box/cache.db
|
||||
SING_BOX_TRAFFIC_SOURCE: ${SING_BOX_TRAFFIC_SOURCE:-snapshot}
|
||||
SING_BOX_TRAFFIC_SOURCE: ${SING_BOX_TRAFFIC_SOURCE:-shadow}
|
||||
SING_BOX_API_SECRET: /var/lib/sing-box/api.secret
|
||||
SING_BOX_RUNTIME_CONFIG: /var/lib/sing-box/runtime-config.json
|
||||
DATAPLANE_SOCKET: /run/vpn-proxy/dataplane.sock
|
||||
@@ -52,7 +52,7 @@ services:
|
||||
DATA_DIR: /var/lib/vpn-proxy
|
||||
SING_BOX_CONFIG: /var/lib/vpn-proxy/sing-box-config.json
|
||||
SING_BOX_CACHE: /var/lib/sing-box/cache.db
|
||||
SING_BOX_TRAFFIC_SOURCE: ${SING_BOX_TRAFFIC_SOURCE:-snapshot}
|
||||
SING_BOX_TRAFFIC_SOURCE: ${SING_BOX_TRAFFIC_SOURCE:-shadow}
|
||||
DATAPLANE_SOCKET: /run/vpn-proxy/dataplane.sock
|
||||
ports:
|
||||
- "${PORT:-3456}:${PORT:-3456}"
|
||||
|
||||
@@ -36,6 +36,7 @@ services:
|
||||
DATA_DIR: /var/lib/vpn-proxy
|
||||
SING_BOX_CONFIG: /var/lib/vpn-proxy/sing-box-config.json
|
||||
SING_BOX_CACHE: /var/lib/sing-box/cache.db
|
||||
SING_BOX_TRAFFIC_SOURCE: \${SING_BOX_TRAFFIC_SOURCE:-shadow}
|
||||
DATAPLANE_SOCKET: /run/vpn-proxy/dataplane.sock
|
||||
volumes:
|
||||
- vpn-proxy-data:/var/lib/vpn-proxy
|
||||
@@ -59,6 +60,7 @@ services:
|
||||
DATA_DIR: /var/lib/vpn-proxy
|
||||
SING_BOX_CONFIG: /var/lib/vpn-proxy/sing-box-config.json
|
||||
SING_BOX_CACHE: /var/lib/sing-box/cache.db
|
||||
SING_BOX_TRAFFIC_SOURCE: \${SING_BOX_TRAFFIC_SOURCE:-shadow}
|
||||
DATAPLANE_SOCKET: /run/vpn-proxy/dataplane.sock
|
||||
ports:
|
||||
- "\${PORT:-3456}:\${PORT:-3456}"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export const HARBOR_VERSIONS = Object.freeze({
|
||||
macClient: '0.34.1',
|
||||
gatewayClient: '0.36.1',
|
||||
gatewayBackend: '0.36.1',
|
||||
gatewayBackend: '0.36.2',
|
||||
});
|
||||
|
||||
export interface ParsedVersion {
|
||||
|
||||
@@ -34,7 +34,8 @@ test('gateway deploy updates control without recreating dataplane', () => {
|
||||
});
|
||||
|
||||
test('Gateway native API credentials remain private to the dataplane volume', () => {
|
||||
assert.match(compose, /SING_BOX_TRAFFIC_SOURCE: \$\{SING_BOX_TRAFFIC_SOURCE:-snapshot\}/);
|
||||
assert.equal(compose.split('SING_BOX_TRAFFIC_SOURCE: ${SING_BOX_TRAFFIC_SOURCE:-shadow}').length - 1, 2);
|
||||
assert.equal(deploy.split('SING_BOX_TRAFFIC_SOURCE: \\${SING_BOX_TRAFFIC_SOURCE:-shadow}').length - 1, 2);
|
||||
assert.match(compose, /vpn-proxy-dataplane:[\s\S]*SING_BOX_API_SECRET: \/var\/lib\/sing-box\/api\.secret[\s\S]*sing-box-cache:\/var\/lib\/sing-box/);
|
||||
assert.doesNotMatch(
|
||||
compose.match(/vpn-proxy-control:[\s\S]*?(?=\nvolumes:)/)?.[0] || '',
|
||||
|
||||
Reference in New Issue
Block a user