ELX-VNetwork
Своя локальная сеть через интернет
Компьютеры в разных городах, каждый за своим роутером, видят друг друга так, будто стоят в одной комнате: общие папки, «Сетевое окружение», принтеры, удалённый рабочий стол, SSH. На роутерах настраивать нечего — ни проброса портов, ни «белого» адреса.
Как в одной комнате
Каждой машине выдаётся постоянный адрес вида 10.77.0.5. Соседи видны в «Сетевом окружении» и отзываются по имени, а не только по адресу, — потому что это настоящий Ethernet, а не проброшенный порт.
Не похоже на VPN
Снаружи это соединение с сайтом по HTTPS на порт 443. Характерного VPN-протокола, который узнаёт DPI, здесь нет, и у оператора нет ничего, что резать первым.
Терминал прямо в браузере
SSH к любой Linux-машине из панели. Имя и пароль спрашивает сама машина — туннель руками поднимать не нужно, ключ заранее раскладывать тоже.
Сегменты и приглашения
Несколько независимых сетей на одном сервере. Машина входит по коду приглашения, а пускать её или нет — решаете вы. Никто не попадает в сегмент, угадав адрес.
Видно, что происходит
Кто в сети и сколько времени, текущая скорость в обе стороны, трафик и журнал последних двухсот сессий. Рядом с каждой машиной — её система, занятая память и загрузка процессора.
Поднимается сразу
Одно соединение и один путь. Ни пробивания NAT, ни перебора кандидатов, ни согласования P2P, которое удаётся за столом и не удаётся на объекте. Сеть готова через пару секунд после запуска.
Скриншоты
Что это на самом деле
Не «доступ к серверу», а настоящая локальная сеть. Клиент создаёт виртуальный сетевой адаптер, и с этого момента операционная система считает удалённые машины воткнутыми в тот же коммутатор: широковещание доходит, обнаружение соседей работает, и любой протокол поверх Ethernet работает здесь, ничего об этом не зная.
Этим оно и отличается от туннеля к одному порту. Общие папки, принтеры, удалённый рабочий стол, SSH, клиенты баз данных, промышленные протоколы, рассчитанные на плоскую сеть, — всё работает без настройки, потому что для них ничего не изменилось.
Из чего это состоит
Всего две программы. Одна стоит на сервере — хватает самого дешёвого VPS. Вторая ставится на каждый компьютер, который должен оказаться в сети. Больше ничего: ни базы данных, ни брокера сообщений, ни сторонних служб.
Сервер — elxvnet-server
Ставится один раз на машину с постоянным адресом и доменным именем. Одно ядро и 512 МБ памяти держат десятки подключённых компьютеров. Один файл около 12 МБ и юнит systemd; база — SQLite рядом с ним.
Клиент — elxvnet
Под Windows установщик заводит службу, виртуальный адаптер и значок у часов. Под Linux это пакет для amd64, arm64 и armhf — драйвер не нужен, всё нужное давно в ядре.
Внутри сервера сразу три вещи: панель управления, учётные записи с сегментами и кодами приглашений, и сам коммутатор, через который идут кадры между машинами. Наружу смотрит только порт 443.
В сравнении с ZeroTier, Tailscale и Hamachi
Задача та же: машины за чужими роутерами оказываются в одной сети. Разница — в том, как это сделано.
| ELX-VNetwork | Обычные аналоги | |
|---|---|---|
| Транспорт | HTTPS на 443, неотличимо от сайта | Свои протоколы поверх UDP, легко опознаваемые DPI |
| Путь | Одно соединение через ваш сервер, поднимается за секунды | Пробивание NAT и согласование P2P, которое может отвалиться посреди работы |
| Учётная запись | Не нужна — сервер ваш | Аккаунт в чужом облаке |
| Лимит устройств | Нет | Бесплатный тариф с потолком |
| Размер клиента | Около 6 МБ, один файл | Десятки мегабайт плюс службы-спутники |
| Уровень сети | L2 — работают широковещание и обнаружение | Обычно L3 — только маршрутизация |
Практическое следствие видно как раз на мобильной связи: протокол, который оператору незачем было ограничивать, продолжает работать.
Установка за две минуты
sudo dpkg -i elx-vnetwork_*.deb
sudo elxvnet join -server https://vnet.example.com -invite ELX-XXXX-XXXX-XXXX
sudo systemctl start elxvnet
elxvnet status
elxvnet-setup-1.0.73.exe /VERYSILENT /SUPPRESSMSGBOXES ^
/SERVER=https://vnet.example.com /INVITE=ELX-XXXX-XXXX-XXXX
Коротко о главном
- Уровень сети
- L2 — настоящий Ethernet, вместе с широковещанием
- Транспорт
- WebSocket поверх TLS, порт 443
- Адаптер
- TAP-Windows6 в Windows, /dev/net/tun в Linux
- Системы клиента
- Windows 10 и 11 (64-разрядные), Debian, Ubuntu и родственные
- Архитектуры
- amd64, arm64, armhf
- Требования к серверу
- Одно ядро, 512 МБ памяти, доменное имя
- Хранилище сервера
- SQLite, один файл
- Оповещения
- Telegram, почта или и то и другое