---
title: Построение сети Meshwork
url: https://doc2.pstreamer.tv/ru/manual/meshwork/setup.html
lang: ru
product: Perfect Streamer
version: 2.0.2.362
---

# Построение сети Meshwork

Настройка Meshwork сводится к тому, чтобы каждый узел знал своё имя и домен и имел хотя бы одного достижимого соседа. Дальше домен достраивает остальные связи сам. Все действия выполняются в веб-админке; изменение настроек Meshwork требует роли администратора. Точные поля и их расположение приведены в разделе [Веб-интерфейс](../webui/index.md#webui).

## Требования и достижимость

- **Сетевая достижимость.** Узел должен уметь установить TCP-соединение с административным веб-сервером соседа. Порт берётся из адреса соседа («хост:порт») либо из публичного порта, который сосед сообщает о себе (Идентичность узла), — это всегда тот порт, на котором настроен его веб-сервер, а при включённом у соседа HTTPS — его TLS-порт. Значения для свежей установки приведены в [Начальные настройки](../first_start/index.md#first-start-initial-settings); нужный порт соседа должен быть открыт со стороны других узлов.
- **HTTPS для автообнаружения через интернет.** Если автообнаруженные узлы домена связываются по публичным (интернет-)адресам, им нужно установить между собой защищённое соединение (HTTPS), чтобы безопасно подтвердить подлинность друг друга по открытой сети. Поэтому включите HTTPS хотя бы на узлах, через которые идёт обнаружение. Включение HTTPS вступает в силу после **перезапуска** сервера. Если узлы доступны только по публичным адресам и ни один не поднят по HTTPS, прямые автообнаруженные связи не аутентифицируются: узел всё равно виден (через ретрансляцию от соседа), но его прямая связь помечается причиной (см. [Карта сети и каталог ресурсов](map.md#meshwork-map)).
- **Локальная сеть — HTTPS не требуется.** Если узлы домена общаются по частным адресам одной доверенной сети (`10.x.x.x`, `172.16–31.x.x`, `192.168.x.x`, а также `127.x.x.x` и `169.254.x.x`), защищённое соединение для автообнаружения не нужно — узлы подтверждают подлинность и по обычному HTTP. Узел распознаётся как локальный по IP-адресу, поэтому в локальной сети задавайте соседей именно по IP-адресам, а не по доменным именам. HTTPS при этом можно включить — он будет использован, если доступен.
- **Явная связь работает и по HTTP** — на неё требование HTTPS не распространяется в любом случае.
- **Имя и секрет обязательны.** Узел участвует в сети, только если у него заданы имя и секрет подписи. Без имени или без секрета узел в Meshwork не участвует.
- **Ограничения на имена.** Имя узла — от 2 до 16 символов, имя домена — не длиннее 16 символов; разрешены латинские буквы, цифры и знаки `_`, `-`, `.`. Пробелы и другие символы недопустимы (например, домен «Alex Home» задать нельзя — используйте `Alex_Home`).

## Идентичность узла

В настройках сервера задаётся, кем узел представляется в сети:

- **Имя узла** — короткое уникальное имя, по которому узел узнают остальные. Пустое имя означает, что узел в сети не участвует.
- **Заметка** — произвольная подпись узла (например, «Москва, стойка 3»), показывается в админке для удобства и на работу сети не влияет.
- **Домен** — узлы с одинаковым доменом автоматически находят друг друга, делят общий каталог ресурсов и разносят оповещения. Пустое значение отключает автообнаружение (узел может работать только по явному списку соседей).
- **Публичные порты** (HTTP и HTTPS) — порты, которые узел сообщает соседям для обратной достижимости при трансляции адресов (NAT). Если не заданы, узел сообщает собственные порты веб-сервера.
- **Дополнительные домены** (режим super-node) — узел входит в автообнаружение каждого перечисленного домена наравне с основным. Ресурсы остаются изолированными по доменам — узел их не смешивает.

## Соседи и секреты

Здесь задаётся, с какими соседями узел поддерживает прямую связь и как стороны проверяют друг друга. Запросы между узлами подписываются общим секретом, поэтому без совпадающих секретов связь не установится. Длина каждого секрета — от 16 до 128 символов.

Список соседей — это записи вида «адрес — имя — секрет»:

- **Адрес** соседа — «хост:порт» его админки. Запись может быть без адреса: такой сосед никогда не вызывается этим узлом (он только сам дозванивается) и опознаётся по имени и секрету — это применяют для узла за NAT, который умеет только инициировать соединение.
- **Имя** соседа должно в точности совпадать с именем, заданным у самого соседа.
- **Общий секрет** связи с этим соседом должен быть одинаковым на обоих концах.

Запись о недоступном соседе удаляется не только здесь: действие «Забыть узел» на экранах «Узлы» и «Топология» ([Узлы](../webui/meshwork.md#webui-fleet-nodes)) вычёркивает его из этого списка. Это та же правка конфигурации, сделанная с экрана наблюдения, и отменить её нельзя.

Кроме списка соседей, у узла есть **собственный секрет подписи**: им узел подписывает свои исходящие запросы. Сосед проверяет подпись тем секретом, который хранит для этого узла, поэтому собственный секрет узла должен совпадать с секретом, записанным о нём у каждого соседа.

> **Примечание**
>
> Практическое правило: для простой площадки задайте один общий секрет и используйте его и как собственный секрет подписи на каждом узле, и как секрет в каждой записи о соседе — тогда любая пара узлов аутентифицируется одинаково. Для более строгого разграничения можно держать отдельный секрет на каждую связь.

## Быстрый старт

### Вариант A. Два узла напрямую (явная связь)

Самый простой Meshwork — два сервера, соединённых вручную.

1. На каждом узле задайте уникальное короткое имя (например, `node1` и `node2`).
2. На каждом узле добавьте запись о соседе: адрес его админки, его имя и общий секрет.
3. На каждом узле задайте собственный секрет подписи. Проще всего держать единый общий секрет на оба узла.
4. Откройте в админке экран «Узлы» области Meshwork. В течение нескольких секунд оба узла увидят друг друга со статусом «Активен».

Домен при этом можно не задавать, но без общего домена вы получите только взаимную видимость узлов. Общий каталог ресурсов и разнос оповещений работают лишь между узлами с одинаковым доменом — если они нужны, задайте узлам общий домен (вариант B).

### Вариант B. Домен с автообнаружением

Когда узлов больше двух, удобнее задать им общий домен и не перечислять каждую связь вручную.

1. На каждом узле задайте уникальное имя и общий домен площадки.
2. Если узлы домена связываются через интернет (по публичным адресам), включите HTTPS хотя бы на одном-двух узлах домена и перезапустите их (см. Требования и достижимость). В локальной сети этот шаг можно пропустить.
3. Свяжите узлы «точкой входа»: на каждом узле пропишите хотя бы одного уже работающего соседа (адрес, имя, общий секрет), как в варианте A. Остальные узлы домена узел найдёт сам.
4. Откройте карту сети. Через несколько секунд в ней появятся все узлы домена: явно прописанные — как постоянные, найденные автоматически — как автообнаруженные.

## Узлы за NAT

Узел в частной сети, до которого извне не достучаться напрямую, может полноценно состоять в сети как **инициатор**. Он сам устанавливает соединение к доступному соседу, и через это одно соединение данные идут в обе стороны — узел и сообщает о себе, и получает сведения о других. Такому узлу достаточно прописать хотя бы одного достижимого соседа.

Сведения о NAT-узле распространяются по домену автоматически: сосед, который с ним на связи, ретранслирует его состояние остальным. У дальних соседей такой узел будет показан как полученный через ретрансляцию, но в состоянии «на связи».

Чтобы узел за NAT был достижим и для входа (например, служил точкой входа домена), настройте публикацию публичного порта (см. Идентичность узла) и пробросьте этот порт на маршрутизаторе/файрволе на административный веб-сервер узла. Со стороны соседей такой узел держат записью «имя + секрет без адреса»: сосед не будет тщетно дозваниваться до частного адреса, а опознает узел по имени и секрету, когда тот подключится сам.

## Типичные проблемы

- **Узлы не видят друг друга.** Проверьте: у обоих задано имя узла; у каждого есть секрет подписи и он совпадает с тем, что записан о нём у соседа; адрес соседа верен и его админ-порт открыт со стороны другого узла.
- **Сосед в состоянии «нет связи».** Узел вышел за окно ожидания: проверьте сеть и работоспособность его веб-сервера. Для узла за NAT убедитесь, что он сам инициирует соединение к достижимому соседу либо что настроены публикация и проброс порта.
- **Автообнаруженный сосед помечен причиной, прямая связь не работает.** В домене не удаётся подтвердить подлинность узлов. Если они связываются через интернет, включите HTTPS хотя бы на одном узле домена и перезапустите его; в локальной сети проверьте, что соседи заданы по IP-адресам, а не по доменным именам. По явной связи (постоянные узлы) связь работает и без HTTPS.
- **Ложный признак NAT.** Если узлы заданы по доменным именам, а не по IP, признак NAT может не определяться по адресу — это не мешает работе. Для надёжной диагностики NAT используйте IP-адреса.
- **Смена домена «сбросила» карту.** Изменение домена или набора дополнительных доменов пересобирает членство: автообнаруженные связи и общий каталог временно сбрасываются и собираются заново. Это нормально.
