Сетевые порты

На этой странице перечислены сетевые порты, которые используют сервисы Tengri, и даны рекомендации по настройке межсетевого экрана. Все порты — TCP, указаны значения по умолчанию. Порты сервисов Tengri меняются переменными TNGRI_* в /etc/tengri/tengri.conf, порты сторонних сервисов — в их собственных конфигурационных файлах.

Клиентские порты

Эти порты слушают на всех сетевых интерфейсах и предназначены для пользователей и внешних систем. На межсетевом экране их открывают клиентским сетям.

Порт Сервис Назначение Параметр

5433

tengri.service

Подключения по протоколу PostgreSQL: psql, драйверы ODBC/JDBC, BI-инструменты. TLS включается параметрами TNGRI_PSQL_SSL_KEY и TNGRI_PSQL_SSL_CERT.

TNGRI_PORT

3000

tengri.service

Веб-интерфейс и REST-API. К нему же обращаются ядра ноутбуков.

TNGRI_WEBAPP_PORT

3001

tengri.service

WebSocket-подключения веб-интерфейса и Python-клиентов.

TNGRI_WEBSOCKET_PORT

3005

tengri.service

REST-каталог Iceberg для внешних движков: Spark, Trino, PyIceberg.

TNGRI_REST_CATALOG_PORT

9002

minio.service

S3-API локального хранилища MinIO. Нужен клиентам, которые обращаются к хранилищу напрямую, в том числе браузерам пользователей.

MINIO_OPTS в /etc/default/tengri-minio

9003

tengri-s3-proxy.service

Прокси доступа к S3: через него пользователи работают с областью Stage/ под собственными учетными данными (Boto3, DuckDB).

TENGRI_S3_PROXY_LISTEN

8009

tengri.service

Сервер MCP для внешних AI-агентов. По умолчанию выключен.

TNGRI_ENABLE_MCP, TNGRI_MCP_PORT

Для TLS на веб-интерфейсе и WebSocket используются общие параметры TNGRI_SSL_KEY и TNGRI_SSL_CERT.

Межузловые порты

В одномашинной установке все взаимодействие сервисов идет внутри узла и правил межсетевого экрана не требует. В кластерной конфигурации между узлами должны быть открыты:

Порт Где слушает Назначение Параметр

57776

узел с tengri.service

RPC-канал кластера: агенты подключаются к серверу. Защищается взаимным TLS параметрами TNGRI_RPC_SSL_KEY, TNGRI_RPC_SSL_CERT и TNGRI_RPC_SSL_CA.

TNGRI_RPC_PORT

эфемерные

узлы с tengri-agent.service

Каждый рабочий процесс слушает на случайном порту, который выдает операционная система, и сервер подключается к нему напрямую. Между узлами кластера должен быть разрешен TCP-трафик на весь эфемерный диапазон — по умолчанию в Linux это 32768—​60999 (sysctl net.ipv4.ip_local_port_range).

5432

узел с каталожным PostgreSQL

Каталог метаданных: единый сервер PostgreSQL, к которому подключаются все узлы кластера (адрес задается в TNGRI_CATALOG_URI). В одномашинной установке слушает только 127.0.0.1 и правил межсетевого экрана не требует.

TNGRI_CATALOG_URI

2379

узел с etcd

Клиентские подключения к etcd: через него узлы кластера находят друг друга. По умолчанию etcd слушает только localhost; адреса для кластера задаются в /etc/etcd/etcd.conf.yml.

listen-client-urls

2380

узлы с etcd

Обмен между членами кластера etcd.

listen-peer-urls

8080

узел с Mimir

Прием метрик от Alloy (remote write). В одномашинной установке используется только локально; открывается узлам кластера при централизованном сборе метрик.

/etc/mimir/config.yaml

Локальные порты

Следующие порты по умолчанию слушают только на loopback-интерфейсе 127.0.0.1 или доступны только локальным процессам. Правил межсетевого экрана они не требуют; перечислены, чтобы их можно было отличить от постороннего трафика и учесть при поиске конфликтов портов.

Порт Сервис Назначение

3006

tengri.service

Служебный интерфейс прокси доступа к S3: выдача учетных данных и решений о доступе. Открывается наружу, только если tengri-s3-proxy работает на другом узле (TNGRI_S3_ACCESS_CONTROL_HOST).

9001

minio.service

Веб-консоль MinIO.

9004

tengri-s3-proxy.service

Служебный интерфейс прокси: состояние и администрирование (TENGRI_S3_PROXY_ADMIN_LISTEN).

9095

mimir.service

Внутренний gRPC-интерфейс Mimir.

9591

tengri.service

Метрики в формате Prometheus, путь /metrics. Чтобы собирать метрики с другого узла, задайте TNGRI_PROMETHEUS_HOST и откройте порт (TNGRI_PROMETHEUS_PORT).

12345

alloy.service

Служебный HTTP-интерфейс Alloy.

случайные

ядра ноутбуков

Порты ядер Python-ноутбуков; контейнеры пробрасывают их только на 127.0.0.1.

Исходящие соединения

В средах с фильтрацией исходящего трафика сервисам Tengri может понадобиться доступ к внешним ресурсам:

  • адреса LLM, заданные в конфигурации, — если используются AI-агенты;

  • репозиторий Python-пакетов для сред ноутбуков (TNGRI_PIP_INDEX_URL, по умолчанию PyPI);

  • реестр npm для сборки дашбордов (TNGRI_NPM_REGISTRY_URL);

  • внешнее S3-хранилище, если вместо локального MinIO используется оно (TNGRI_S3_ENDPOINT_URL).

Браузерные ноутбуки загружают пакеты Pyodide с CDN (TNGRI_PYODIDE_CDN_URL, по умолчанию cdn.jsdelivr.net) — это соединение устанавливает браузер пользователя, а не сервер.

Пример настройки межсетевого экрана

Пример правил nftables для одномашинной установки: клиентам открываются только пользовательские порты, остальной входящий трафик запрещается. Фрагмент /etc/nftables.conf (адаптируйте под собственную политику и не забудьте правило для SSH, чтобы не потерять доступ к узлу):

table inet filter {
    chain input {
        type filter hook input priority filter; policy drop;

        iif "lo" accept
        ct state established,related accept
        ct state invalid drop

        tcp dport 22 accept comment "SSH"
        tcp dport { 5433, 3000, 3001, 3005, 9002, 9003 } accept comment "Tengri client ports"
    }
}

В кластерной конфигурации дополнительно разрешите трафик между узлами. Проще всего разрешить узлам весь TCP-трафик друг к другу, поскольку рабочие процессы используют эфемерные порты, — добавьте в цепочку input правило с подсетью или адресами узлов кластера:

ip saddr 192.0.2.0/24 meta l4proto tcp accept comment "cluster nodes"

Если нужны точечные правила, откройте узлам кластера порты 5432, 57776, 2379, 2380 и эфемерный диапазон:

ip saddr 192.0.2.0/24 tcp dport { 5432, 57776, 2379, 2380, 32768-60999 } accept comment "cluster nodes"

Примените правила и включите их загрузку при старте системы:

sudo nft -f /etc/nftables.conf
sudo systemctl enable nftables