Files
netrunner-proxy/server/README.MD
T
nineap 72246f986a Переключить дев-инстанс прокси на порт 8443
Локальный debug-server и задеплоенный на DEV_IP systemd-сервис раньше
использовали 4443/443 соответственно — развели их на общий 8443, чтобы не
пересекаться с портами, занятыми другими дев-сервисами (например, Caddy на 443).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-07 18:17:20 +07:00

35 lines
2.0 KiB
Markdown

# Крейт `server` — серверная часть прокси
Тонкая обвязка вокруг ядра ([`core`](../core)): принимает замаскированные
TLS-соединения, проверяет, что это валидный Netrunner-клиент, и проксирует трафик
во внешнюю сеть. Вся бизнес-логика — в ядре; здесь точка входа, листенер и
серверная диагностика.
> Детали — в rustdoc: `cargo doc --open -p netrunner-server`.
## Файлы
| Файл | Роль |
|--------------------|-----------------------------------------------------------------|
| `src/main.rs` | CLI (`--host`/`--port`), логгер, tokio-рантайм, запуск. |
| `src/network.rs` | TCP-листенер; на каждое соединение спавнит `ServerHandler`. |
| `src/diagnostics.rs`| Логгер диагностики ядра → `netrunner_diagnostics.jsonl`. |
## Жизненный цикл соединения (в ядре)
```text
accept TCP → core::ServerHandler::run:
1. ClientHello → ServerHello (невалидный/чужой → stealth-fallback на ubuntu.com:443)
2. проверка auth-payload (неверный → отказ)
3. прицепить ногу к Muxer сессии и крутить TunnelEngine → проксировать к целям
```
Один общий `SessionManager` мультиплексирует несколько ног одной сессии на один
`Muxer`. Фоновая задача периодически делает health-check и печатает топологию.
## Запуск и деплой
Локально: `make debug-server` (биндится на `0.0.0.0:8443`). Релиз/деплой:
`make build-server``make deploy-server` (systemd-сервис на VPS, см.
`server/netrunner-server.service` и `Makefile`).