Обход NAT
Host и Client сами подключаются к Relay наружу. Входящие порты на их роутерах открывать не нужно — соединение «склеивается» на сервере.
KRASOFT Relay Server — лёгкий сервер-посредник, который «склеивает» соединения Host и Client через интернет. Подключайтесь к ПК за роутером без проброса портов на каждой машине — порт открывается только на одном Relay.
Relay решает проблему NAT: не нужно настраивать роутер на каждом удалённом ПК.
Host и Client сами подключаются к Relay наружу. Входящие порты на их роутерах открывать не нужно — соединение «склеивается» на сервере.
Это ваш сервер и ваши правила. Откройте его для всех или закройте ключом доступа — трафик идёт только через вашу инфраструктуру.
Один self-contained exe, ставится как служба Windows: автозапуск, авто-перезапуск при сбое, keepalive-пинги и контроль «мёртвых» соединений.
Бинарный протокол поверх TCP с keepalive — минимум задержки, максимум надёжности.
Удалённый ПК подключается к Relay и держит управляющее соединение (команда 0x10/0x12 + ID, либо + ключ).
Оператор подключается к Relay и сообщает целевой ID хоста (команда 0x20/0x22).
Сервер находит нужный Host по ID и шлёт ему сигнал «клиент ждёт» (0x30 + Session ID).
Host создаёт новое соединение под эту сессию (0x11 + Session ID).
Два потока связываются напрямую (буферы 64 КБ, TCP_NODELAY). Дальше — обычный сеанс управления.
Пинги каждые 30 c, контроль «мёртвых» хостов и зависших клиентов — Relay сам чистит неживые соединения.
Рекомендуемый способ — как служба Windows. Всё нужное «зашивается» в одну команду.
Положите KrasoftRemoteDesktop.RelayServer.exe в удобную папку, например C:\service\KrasoftRelayServer.
Запустите от имени администратора. Служба KrasoftRelayServer создастся с автозапуском и сразу стартует на порту 8080:
KrasoftRemoteDesktop.RelayServer.exe --install -p 8080
Другой порт? Замените 8080 на свой. Защита ключом — см. ниже.
Разрешите входящие подключения на выбранный порт:
netsh advfirewall firewall add rule name="KRASOFT Relay 8080" dir=in action=allow protocol=TCP localport=8080
В облаке (VPS) дополнительно откройте порт во внешней Security Group / firewall провайдера.
Статус службы и журнал событий:
sc query KrasoftRelayServer
Лог службы: %ProgramData%\KrasoftRemote\relay.log — там видно старт, регистрацию хостов и сессии.
Укажите адрес и порт вашего Relay в приложениях:
Быстрая проверка без установки службы (Ctrl+C — остановка):
KrasoftRemoteDesktop.RelayServer.exe -p 8080
Остановить и удалить службу Windows:
KrasoftRemoteDesktop.RelayServer.exe --uninstall
От полностью открытого Relay до тонких лимитов по каждому ключу — выбираете под задачу.
Без ключа — подключиться может любой, кто знает адрес. Режим по умолчанию, ничего не настраивается.
…RelayServer.exe --install -p 8080Простой шлагбаум: без верного ключа Relay закрывает соединение. Без лимитов. Ключ можно задать и через KRASOFT_RELAY_KEY.
…RelayServer.exe --install -p 8080 -k КЛЮЧНесколько ключей, и для каждого свои срок действия, число сессий и число хостов. Для выдачи доступа клиентам.
Как настроить ↓keys.json — гибкие лимитыПоложите keys.json рядом с exe или в %ProgramData%\KrasoftRemote\keys.json — Relay подхватит его при старте. Для каждого ключа можно ограничить срок, число одновременных сессий и число хостов.
{
"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 (как запущен). «Простой» режим случайно не станет строгим.-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.
Установите службу на другой порт: --install -p 9000 (и откройте его в брандмауэре). Тот же порт укажите в Host и Client.
Смотрите лог %ProgramData%\KrasoftRemote\relay.log и системный журнал. Частая причина — занятый порт или запуск установки не от администратора.
Три режима: открытый (без -k — пускает всех), один общий ключ (-k КЛЮЧ — простой шлагбаум) и keys.json — несколько ключей с лимитами на срок, число сессий и хостов. Подробно — в разделе «Три режима запуска».
Нет. Сборка self-contained — все зависимости внутри exe. Достаточно Windows x64.
Да. Сам сервер написан на .NET и кроссплатформенный — на Linux его можно запустить в консоли (./KrasoftRemoteDesktop.RelayServer -p 8080) или под systemd. Инструкция выше с установкой службы Windows (--install, netsh) относится к Windows; на Linux порт открывается средствами дистрибутива. Через один Relay соединяются и Windows-, и Linux-приложения.
Скачайте сервер и установите службу одной командой — а Host и Client направьте на его адрес.