Для самостоятельного хостинга

Свой Relay-сервер
за 5 минут

KRASOFT Relay Server — лёгкий сервер-посредник, который «склеивает» соединения Host и Client через интернет. Подключайтесь к ПК за роутером без проброса портов на каждой машине — порт открывается только на одном Relay.

  • Служба Windows
  • Self-contained (без .NET)
  • Авто-перезапуск
Зачем нужен

Один открытый порт — вместо десятков

Relay решает проблему NAT: не нужно настраивать роутер на каждом удалённом ПК.

Обход NAT

Host и Client сами подключаются к Relay наружу. Входящие порты на их роутерах открывать не нужно — соединение «склеивается» на сервере.

Свой контроль

Это ваш сервер и ваши правила. Откройте его для всех или закройте ключом доступа — трафик идёт только через вашу инфраструктуру.

Лёгкий и живучий

Один self-contained exe, ставится как служба Windows: автозапуск, авто-перезапуск при сбое, keepalive-пинги и контроль «мёртвых» соединений.

Как работает

Пять шагов одной сессии

Бинарный протокол поверх TCP с keepalive — минимум задержки, максимум надёжности.

1
Host регистрируется

Удалённый ПК подключается к Relay и держит управляющее соединение (команда 0x10/0x12 + ID, либо + ключ).

2
Client запрашивает

Оператор подключается к Relay и сообщает целевой ID хоста (команда 0x20/0x22).

3
Relay зовёт хоста

Сервер находит нужный Host по ID и шлёт ему сигнал «клиент ждёт» (0x30 + Session ID).

4
Host открывает сессию

Host создаёт новое соединение под эту сессию (0x11 + Session ID).

5
Relay строит мост

Два потока связываются напрямую (буферы 64 КБ, TCP_NODELAY). Дальше — обычный сеанс управления.

Пинги каждые 30 c, контроль «мёртвых» хостов и зависших клиентов — Relay сам чистит неживые соединения.

Установка

Подробная инструкция

Рекомендуемый способ — как служба Windows. Всё нужное «зашивается» в одну команду.

Что потребуется
  • Windows-машина с публичным IP или доменом (VPS/выделенный сервер либо ПК с пробросом порта на роутере).
  • Открытый входящий TCP-порт (по умолчанию 8080) — в брандмауэре и, для облака, в Security Group.
  • Права администратора (для установки службы). .NET ставить не нужно — сборка self-contained.
1

Скачайте сервер

Положите KrasoftRemoteDesktop.RelayServer.exe в удобную папку, например C:\service\KrasoftRelayServer.

Скачать RelayServer.exe
2

Установите как службу

Запустите от имени администратора. Служба KrasoftRelayServer создастся с автозапуском и сразу стартует на порту 8080:

Командная строка · администратор
KrasoftRemoteDesktop.RelayServer.exe --install -p 8080

Другой порт? Замените 8080 на свой. Защита ключом — см. ниже.

3

Откройте порт в брандмауэре

Разрешите входящие подключения на выбранный порт:

Командная строка · администратор
netsh advfirewall firewall add rule name="KRASOFT Relay 8080" dir=in action=allow protocol=TCP localport=8080

В облаке (VPS) дополнительно откройте порт во внешней Security Group / firewall провайдера.

4

Проверьте, что всё работает

Статус службы и журнал событий:

Командная строка
sc query KrasoftRelayServer

Лог службы: %ProgramData%\KrasoftRemote\relay.log — там видно старт, регистрацию хостов и сессии.

5

Подключите Host и Client

Укажите адрес и порт вашего Relay в приложениях:

  • Host: вкладка «Настройка» → «Настройки сервера» → адрес Relay (IP/домен) и порт.
  • Client: «Настройки» → «Relay-сервер» → тот же адрес и порт.
  • Режим Internet, одинаковый Host ID — и соединение пойдёт сквозь NAT.

🧪 Запуск в консоли (тест)

Быстрая проверка без установки службы (Ctrl+C — остановка):

Консоль
KrasoftRemoteDesktop.RelayServer.exe -p 8080

🗑️ Удаление службы

Остановить и удалить службу Windows:

Администратор
KrasoftRemoteDesktop.RelayServer.exe --uninstall
Контроль доступа

Три режима запуска

От полностью открытого Relay до тонких лимитов по каждому ключу — выбираете под задачу.

1

Открытый

Без ключа — подключиться может любой, кто знает адрес. Режим по умолчанию, ничего не настраивается.

без ключа
…RelayServer.exe --install -p 8080
2

Один общий ключ

Простой шлагбаум: без верного ключа Relay закрывает соединение. Без лимитов. Ключ можно задать и через KRASOFT_RELAY_KEY.

с ключом
…RelayServer.exe --install -p 8080 -k КЛЮЧ
3

keys.json — лимиты по ключу

Несколько ключей, и для каждого свои срок действия, число сессий и число хостов. Для выдачи доступа клиентам.

Как настроить ↓

Файл keys.json — гибкие лимиты

Положите keys.json рядом с exe или в %ProgramData%\KrasoftRemote\keys.json — Relay подхватит его при старте. Для каждого ключа можно ограничить срок, число одновременных сессий и число хостов.

keys.json
{
  "keys": [
    { "key": "CLIENT-A-9f3c", "expires": "2026-12-31", "maxSessions": 5, "maxHosts": 2, "comment": "Клиент А" },
    { "key": "TRIAL-71a2",    "expires": "2026-07-01", "maxSessions": 1, "maxHosts": 1, "comment": "Демо-доступ" },
    { "key": "UNLIM-c0de" }
  ]
}
ПолеЧто ограничиваетЕсли не указано
keyСам ключ доступаобязательно
expiresСрок действия, ГГГГ-ММ-ДД (включительно)бессрочно
maxSessionsОдновременных сессий на ключбез лимита
maxHostsХостов (устройств) на ключбез лимита
commentЗаметка — кому выдан ключ
Безопасно по умолчанию
  • Нет файла keys.json — лимиты выключены, Relay остаётся в режиме 1 или 2 (как запущен). «Простой» режим случайно не станет строгим.
  • Ошибка в JSON — лимиты тоже выключены, Relay не падает из-за опечатки.
  • Когда файл есть: ключ не из списка отклоняется; при истёкшем сроке или превышении лимита сессий/хостов соединение закрывается.
Справочник

Параметры командной строки

АргументНазначениеПо умолчанию
-p <порт>TCP-порт прослушивания8080
-k <ключ>Ключ доступа (или env KRASOFT_RELAY_KEY)пусто (открыт)
--installУстановить и запустить службу Windows
--uninstallОстановить и удалить службу
(без аргументов)Запуск в консоли (foreground)

Служба: имя KrasoftRelayServer, автозапуск, авто-перезапуск при сбое (через 5 c), учётка LocalSystem. Лимиты по каждому ключу (срок, сессии, хосты) — через файл keys.json, см. «Три режима запуска». Сервер написан на .NET и кроссплатформенный: на Linux запускается в консоли теми же ключами -p/-k.

Вопросы

Если что-то не так

Не подключается снаружи

Проверьте, что порт открыт во входящих правилах брандмауэра и (для VPS) в Security Group провайдера. Если Relay стоит за домашним роутером — нужен проброс порта на публичный IP. Проверить доступность порта можно с другого ПК: Test-NetConnection ВАШ_АДРЕС -Port 8080.

Порт 8080 занят

Установите службу на другой порт: --install -p 9000 (и откройте его в брандмауэре). Тот же порт укажите в Host и Client.

Служба не стартует

Смотрите лог %ProgramData%\KrasoftRemote\relay.log и системный журнал. Частая причина — занятый порт или запуск установки не от администратора.

Открытый Relay, с ключом или с лимитами?

Три режима: открытый (без -k — пускает всех), один общий ключ (-k КЛЮЧ — простой шлагбаум) и keys.json — несколько ключей с лимитами на срок, число сессий и хостов. Подробно — в разделе «Три режима запуска».

Нужно ли ставить .NET?

Нет. Сборка self-contained — все зависимости внутри exe. Достаточно Windows x64.

А Relay работает на Linux?

Да. Сам сервер написан на .NET и кроссплатформенный — на Linux его можно запустить в консоли (./KrasoftRemoteDesktop.RelayServer -p 8080) или под systemd. Инструкция выше с установкой службы Windows (--install, netsh) относится к Windows; на Linux порт открывается средствами дистрибутива. Через один Relay соединяются и Windows-, и Linux-приложения.

Поднимите свой Relay

Скачайте сервер и установите службу одной командой — а Host и Client направьте на его адрес.