L↗LinkLANСкачать ↗
ДОКУМЕНТАЦИЯ / 0.1.0

Ваш сервер.
Ваша сеть.

Проект содержит API, UDP relay, STUN, Windows-клиент, лендинг и мониторинг. Нужны Docker Engine и Compose v2 с Linux-контейнерами. Сборка клиента в Linux Docker создаёт Windows x64 .exe.

1. Подготовьте сервер

Распакуйте исходники и выполните в каталоге проекта:

python3 scripts/init-env.py
# Отредактируйте .env:
# RELAY_PUBLIC_ADDRESS=адрес-сервера:51820
# STUN_PUBLIC_ADDRESS=адрес-сервера:3478
docker build -f Dockerfile.client --target artifacts \
  --output type=local,dest=./releases .
python3 scripts/publish-downloads.py
docker compose up -d --build

Локальная страница: http://localhost:8191. API: /api, администрирование: /admin. Для публичного запуска положите сертификаты в deploy/certs и включите TLS. Внешний веб-порт остаётся 8191.

docker compose -f compose.yml -f compose.tls.yml up -d --build
ПортНазначение
8191 / TCPЛендинг, скачивание, API, WebSocket
3478 / UDPSTUN
51820 / UDPЗашифрованный relay

2. Подключите компьютеры

  1. Распакуйте ZIP клиента целиком: LinkLAN.exe и wintun.dll должны лежать рядом.
  2. Запустите клиент от администратора. Укажите https://ваш-домен:8191.
  3. Зарегистрируйтесь. Пароль — не менее 12 байт.
  4. Первый участник создаёт сеть и приглашение. Остальные вводят ID сети и код, затем нажимают «Вступить».
  5. Выберите сеть и нажмите «Подключить VPN». Проверьте ping другого виртуального IP.

Windows Firewall должен разрешать ваши игры и локальные сервисы на виртуальном интерфейсе. Клиент добавляет ограниченное правило ICMP своей подсети. Broadcast-поиск пока не поддерживается.

3. Соберите клиент в Docker

docker build -f Dockerfile.client --target artifacts \
  --output type=local,dest=./releases .
python3 scripts/publish-downloads.py
docker compose restart web

Сборка создаёт portable ZIP, .exe и NSIS-установщик. Для подписанных обновлений задайте собственный закрытый ключ Ed25519 и закрепите публичный ключ в клиенте. Команды приведены в README исходников.

4. Назначьте администратора

Сначала зарегистрируйте аккаунт, затем выполните на сервере:

docker compose exec api /app/linklan-server \
  --make-admin admin@example.com

Откройте /admin и войдите в этот аккаунт. В логах и метриках — технические события и счётчики; содержимое IP-пакетов недоступно.

Статус первой версии

Это тестовый MVP. Одновременно активна одна сеть. Испытания на Windows, разных NAT и целевых нагрузках ещё необходимы. Production-готовность, 100 Mbps и 20 000 устройств пока не подтверждены. Отдельная Windows-служба, LAN-обнаружение и macOS/Linux — дальнейшее развитие.

Скачать исходный проект ↓