ELXSoftware

ELX-VNetwork

Документация

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

Поднять сервер

Серверу нужна машина с публичным адресом и доменным именем, указывающим на неё. Остальное делает сценарий установки: заводит юнит systemd, настраивает nginx и получает сертификат.

На сервере с доменом, от root
sudo DOMAIN=vnet.example.com sh install.sh
# дальше открыть https://vnet.example.com/admin
# войти как admin / admin и сменить пароль
Домен должен резолвиться заранееСертификат выдаётся по подтверждению владения именем, поэтому запись DNS должна указывать на сервер до запуска сценария. Если это не так, сценарий остановится ровно на этом шаге и ничего больше не сломает.

Требования скромные: одного ядра и 512 МБ памяти хватает на десятки подключённых машин, потому что сервер пересылает кадры, а не обрабатывает их.

Установка клиента

Клиенту нужны две вещи: адрес вашего сервера и код приглашения от него. Всё остальное — адаптер, служба, адрес — он устраивает сам.

Linux
sudo dpkg -i elx-vnetwork_*.deb
sudo elxvnet join -server https://vnet.example.com -invite ELX-XXXX-XXXX-XXXX
sudo systemctl enable --now elxvnet
elxvnet status
Windows, из командной строки администратора
cd "C:\Program Files\ELX-VNetwork"
elxvnet join -server https://vnet.example.com -invite ELX-XXXX-XXXX-XXXX
elxvnet -service restart
С этого стоит начинать любой разборelxvnet status печатает состояние соединения, выданный адрес и всех соседей по сегменту. Большинство вопросов закрывается этой одной командой, ещё до того как что-то открыто.

Сегменты и приглашения

Сегмент — независимая сеть. Машины внутри одного видят друг друга; машины в разных сегментах — нет, хотя сервер у них общий. Объект, заказчик или испытательный стенд получают каждый свой.

  1. Создайте сегмент в панели и назовите его так, чтобы через год узнать.
  2. Сгенерируйте код приглашения — одноразовый или открытый для партии машин.
  3. Поставьте клиент с этим кодом.
  4. Подтвердите машину в панели: до этого она не подключена, а ждёт.
Подтверждение и есть защитаУтёкшего кода недостаточно, чтобы попасть в сеть. Машина появляется в списке ожидающих и остаётся там, пока её не пустит человек.

Как читать таблицу участников

СтолбецО чём говорит
АдресПостоянный адрес в сегменте, не меняется при переподключении
ВерсияВерсия клиента — устаревшая здесь и есть повод для кнопки обновления
В сетиСколько длится текущая сессия; постоянно обнуляющееся число означает неустойчивый канал
СкоростьТекущая полоса в обе стороны
ТрафикИтоги за сессию
СистемаОперационная система, занятая память и загрузка процессора, раз в полминуты

Столбец «Система» собирается из того, что ядро и так знает; ничего лишнего на удалённую машину ради него не ставится.

Терминал в браузере

Любую Linux-машину сегмента можно открыть терминалом прямо из панели. Это обычная сессия SSH: удалённая машина проверяет вас сама, своими учётными записями и своей политикой паролей. Панель эти пароли не хранит и обойти проверку не может.

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

Обновление клиентов

  • Windows. Клиент обновляется сам, без вопросов.
  • Linux. Отставшую машину можно обновить прямо из таблицы участников: панель заходит по SSH и выполняет обновление пакета за вас.
  • Вручную. Скачайте новый пакет и поставьте как обычно; приглашение и адрес переживают обновление.

Оповещения

Сервер умеет сообщать, что машина пропала или вернулась, что кто-то ждёт одобрения и что кто-то ошибся паролем. Доставка — в Telegram, письмом или и так и так, со временем в вашем часовом поясе.

Что включить первым«Машина пропала» для того оборудования, которое важно, и «ожидает одобрения». Остальное становится полезным, когда сеть вырастет настолько, что заглядывать в панель каждый день вы перестанете.

Когда машина не подключается

СимптомКуда смотреть
elxvnet status показывает отсутствие связиАдрес сервера, сертификат или исходящий прокси, перехватывающий TLS
Подключено, но адрес не выданМашина ещё ждёт подтверждения в панели
Адрес выдан, соседи не отвечаютЛокальный брандмауэр блокирует виртуальный адаптер — разрешите его как частную сеть
Windows видит адаптер, но нет «Сетевого окружения»Для профиля этого адаптера выключены обнаружение сети и общий доступ к файлам
Соединение рвётся каждые несколько минутМобильный канал с коротким тайм-аутом простоя или два клиента с одинаковой личностью
Работает всё, кроме одного протоколаЭтот протокол привязан к другому адаптеру — проверьте порядок интерфейсов и метрики
Самая быстрая проверкаПингуйте соседа по адресу. Если по адресу отвечает, а по имени нет — проблема в разрешении имён, а не в сети, и это гораздо меньшая беда.

Частые вопросы

Трафик идёт через сервер?
Да — кадры между машинами идут через ваш сервер. Это сделано намеренно: именно поэтому соединение поднимается мгновенно и держится там, где согласование P2P не складывается.
Какая полоса нужна серверу?
Та, которой обмениваются машины, ведь он несёт их трафик. Для удалённого администрирования и общих папок это немного; для постоянной перекачки файлов между объектами VPS выбирайте соответственно.
Может ли одна машина быть в двух сегментах?
Один экземпляр клиента принадлежит одному сегменту. Два сегмента на одной машине — это две установки, и обычно это не то, что нужно: проще поместить общую машину в один сегмент и маршрутизировать то, что ей требуется.
Что происходит при перезапуске сервера?
Клиенты переподключаются сами и сохраняют свои адреса. Перерыв длится столько же, сколько перезапуск.

Рядом в разделе