Windows 10 / 11
SHA-256: —
Удалённое управление компьютером с телефона или другого ПК: экран и ввод, терминал, файлы, питание и датчики.
Рабочий стол передаётся потоком кадров. Касание — клик, удержание — правая кнопка, два пальца — прокрутка. С другого ПК мышь и клавиатура уходят на удалённую машину целиком.
PowerShell или cmd, при необходимости с правами администратора. Сессия живёт на компьютере и переживает сворачивание приложения.
Обзор дисков, скачивание и загрузка, переименование и удаление. Текст и изображения открываются в приложении.
Выключение, перезагрузка, сон, гибернация и блокировка, сразу или с отсрочкой, которую можно отменить. Спящий компьютер поднимается Wake-on-LAN.
Процессор, видеокарта, память, диски и сеть с обновлением раз в секунду. Пороговое правило отправляет уведомление на телефон.
Список процессов с иконками и поиском, завершение задач, переключение окон, запуск установленных программ.
Демо приложения
Окно настольного клиента на демо-данных: разделы переключаются так же, как в приложении. Приложение для телефона на демо-данных: список компьютеров, панель ПК и её инструменты открываются так же, как в приложении.
Процессор
загрузкачастота
Память
18.4ГБ
из 31.9 ГБ
Подкачка · 2.1 ГБ / 8.0 ГБ
GPU 0NVIDIA GeForce RTX 4070
VRAM5.2 ГБ / 12.0 ГБ
2.35 ГГцчастота
10.50 ГГцпамять
СетьEthernet
Диски
C:\412 ГБ / 931 ГБ
D:\1.62 ТБ / 1.82 ТБ
Система
аптайм3 д 4 ч 12 мин
в системеabdul
ИмяCPUGPUПамять
PowerShell 7.4.6PS C:\Users\abdul> Get-Process | Sort CPU -desc | Select -First 3 NPM(K) PM(M) WS(M) CPU(s) Id ProcessName 92 412.18 398.02 812.44 11244 chrome 71 280.33 301.51 402.10 8712 Code 38 118.90 214.07 355.72 1320 dwmPS C:\Users\abdul>
Core (Tctl/Tdie)
AMD Ryzen 9 7950X
мин 41° · макс 78°
CCD1 (Tdie)
AMD Ryzen 9 7950X
мин 38° · макс 71°
GPU Core
RTX 4070
мин 34° · макс 74°
GPU Hot Spot
RTX 4070
мин 40° · макс 86°
Composite
Samsung SSD 990 PRO
мин 33° · макс 55°
Motherboard
ProArt X870E-CREATOR
мин 31° · макс 44°
DIMM #1
Kingston FURY 32 GB
мин 36° · макс 52°
DIMM #2
Kingston FURY 32 GB
мин 35° · макс 51°
ДискиИзбранноеC:UsersabdulDocuments
Имя ↑РазмерДатаПоказать скрытые
7 элементов
Диски
Домашняя папкаC:\Users\abdul
C:\
D:\
Избранное
DocumentsC:\Users\abdul\Documents
DownloadsC:\Users\abdul\Downloads
ИмяТипРазмерДата
7 объектов · выбрано 1 · 184 МБ
Интернетесть
ОсновнойEthernet
Шлюз192.168.1.1
Внешний IPNL185.107.56.23
DNS1.1.1.1
8.8.8.8
VPNне активен
Интерфейсы3
Ethernetвкл
Realtek Gaming 2.5GbE Family Controller
192.168.1.42
A8:A1:59:3C:0E:712.5 Gbit/s
Wi-Fiвыкл
Intel Wi-Fi 7 BE200 320MHz
—
B4:8C:9D:21:6A:F0—
vEthernet (WSL)вкл
Hyper-V Virtual Ethernet Adapter
172.24.160.1
00:15:5D:A3:7C:0210 Gbit/s
Операционная система10.0.26100.4652
Аптайм3 д 4 ч 12 мин
Агент1.0.5 · Python 3.12.7
Процессор
AMD Ryzen 9 7950X 16-Core Processor
16ядер
32потоков
31.9 ГБпамять
Материнская плата
Материнская платаASUSTeK COMPUTER INC. ProArt X870E-CREATOR WIFI
BIOS2102 · 06.03.2025
Мониторов2
Видеокарты
Накопители
Сетевые адаптеры
Realtek Gaming 2.5GbE Family ControllerIntel Wi-Fi 7 BE200 320MHzHyper-V Virtual Ethernet Adapter
Когда
В установщике клиент и агент. Выберите «Подключаться к этому ПК» и включите автозапуск: Windows один раз запросит права администратора.
Почта и код из письма или вход через Google. Адрес сервера уже указан.
Проброс портов не нужен: и агент, и приложение сами соединяются с сервером.
Агент сам открывает исходящее соединение к серверу. В локальной сети приложение подключается к ПК напрямую и сверяет отпечаток SHA-256 его сертификата.
Телефон — сервер и ПК — сервер. Незашифрованный транспорт включается только явным флагом --insecure для отладки в локальной сети.
Access-токен на подписи Ed25519 живёт 15 минут, refresh — 90 дней и меняется при каждом обновлении. Предъявленный дважды refresh отзывает всю семью.
Пароли — argon2id, токены, коды привязки и коды из писем — SHA-256.
ПК, устройства и коды принадлежат аккаунту. Чужой идентификатор получает тот же ответ, что и несуществующий.
120 запросов за 10 секунд на устройство, опасные команды — 5 в минуту, ввод в терминал и живой экран — 600 за 10 секунд.
Каждая команда — строка журнала с устройством, аргументами и результатом. Устройство отзывается одной кнопкой; IP-адреса входов и посещений хранятся 30 дней и видны только оператору сервера.
Кадры и файлы идут через сервер и видны ему в момент передачи.
Код из письма подтверждает новую установку, а не каждый вход.
Пока сеанс заблокирован или открыт запрос UAC, удалённый ввод не принимается. Датчики, терминал и файлы работают.
Хаб — один процесс и файл SQLite. Готового образа нет: хаб ставится из рабочей копии репозитория. Выберите, где он будет работать.
Ubuntu 22.04 или 24.04 с белым IP, запись A домена указывает на сервер, открыты порты 80 и 443.
Перенесите код на сервер и запустите установку:
git archive --format=tar HEAD | gzip -9 > /tmp/remotek-src.tar.gz
scp -P 22 /tmp/remotek-src.tar.gz [email protected]:/tmp/
ssh -p 22 [email protected] 'mkdir -p /opt/remotek/app \
&& tar xzf /tmp/remotek-src.tar.gz -C /opt/remotek/app \
&& bash /opt/remotek/app/deploy/bootstrap-server.sh hub.example.com [email protected] 22'Скрипт ставит Docker, брандмауэр, хаб и Caddy — тот сам получает сертификат для hub.example.com.
Создайте аккаунт в приложении: «Другой сервер» → https://hub.example.com. Код подтверждения — в журнале:
docker logs remotek-hub-1 2>&1 | grep "verification code"Код приходит на почту, когда у хаба есть ключ Resend (REMOTEK_RESEND_API_KEY) и адрес отправителя (REMOTEK_MAIL_FROM). Без них код пишется в журнал.
На ПК войдите в этот аккаунт в Remotek для Windows с ролью «Подключаться к этому ПК». Затем закройте регистрацию: /admin → «Сопряжение».
Pi 5 с 64-битной Raspberry Pi OS, кабелем к роутеру, с постоянным адресом в DHCP.
Склонируйте репозиторий в ~/remotek и из этой папки поставьте хаб сервисом:
sudo deploy/pi/install.sh --public-url http://192.168.50.2:8080Скрипт сам скачает Python 3.12 и заведёт сервис remotek-hub. В --public-url — постоянный адрес Pi.
Создайте аккаунт в приложении: «Другой сервер» → http://192.168.50.2:8080, включите «Разрешить http://». Код подтверждения — в журнале:
journalctl -u remotek-hub | grep "verification code"Код приходит на почту, когда у хаба есть ключ Resend (REMOTEK_RESEND_API_KEY) и адрес отправителя (REMOTEK_MAIL_FROM). Без них код пишется в журнал.
На ПК войдите в этот аккаунт в Remotek для Windows так же, с «Разрешить http://», ролью «Подключаться к этому ПК». Затем закройте регистрацию: /admin → «Сопряжение».
http:// — только дома или через VPN. Снаружи — Tailscale Serve, см. docs/.
Всегда включённый Mac, кабелем к роутеру. Хаб — без Docker: из сети Docker magic-пакет не выходит.
Поставьте хаб по разделам 4 и 5 docs/deploy-macos.md и запустите службу:
sudo launchctl bootstrap system /Library/LaunchDaemons/app.remotek.hub.plistКод — в /Users/Shared/remotek, служба работает от аккаунта _remotek, адрес хаба — в plist, plist — в /Library/LaunchDaemons.
Создайте аккаунт в приложении: «Другой сервер» → http://192.168.50.3:8080, включите «Разрешить http://». Код подтверждения — в журнале:
sudo grep "verification code" /Users/Shared/remotek-data/logs/hub.err.logКод приходит на почту, когда у хаба есть ключ Resend (REMOTEK_RESEND_API_KEY) и адрес отправителя (REMOTEK_MAIL_FROM). Без них код пишется в журнал.
На ПК войдите в этот аккаунт в Remotek для Windows так же, с «Разрешить http://», ролью «Подключаться к этому ПК». Затем закройте регистрацию: /admin → «Сопряжение».
http:// — только дома или через VPN. Снаружи — Tailscale Serve, см. docs/.
ПК с Windows 10 или 11 (x64), который не засыпает, кабелем к роутеру. Нужны Git и uv и свободный порт 8080.
Склонируйте репозиторий, соберите и установите хаб и запустите его:
powershell -ExecutionPolicy Bypass -File hub\installer\windows\build.ps1 -SkipSetup
powershell -ExecutionPolicy Bypass -File hub\installer\windows\install.ps1
& "$env:LOCALAPPDATA\Remotek\hub\remotek-hub.exe" --trayУстановщик кладёт хаб в %LOCALAPPDATA%\Remotek\hub, ярлык — в «Пуск», и заводит задачу RemotekHub: хаб стартует при входе в систему, со значком в трее.
Создайте аккаунт в приложении: «Другой сервер» → http://192.168.50.4:8080, включите «Разрешить http://». Код подтверждения — в журнале:
Select-String "verification code" "$env:LOCALAPPDATA\Remotek\hub\data\hub.log"Если Windows спросит, пускать ли remotek-hub.exe в сеть, разрешите частные сети. Письма с кодом — после ключа Resend (REMOTEK_RESEND_API_KEY).
На ПК войдите в этот аккаунт в Remotek для Windows так же, с «Разрешить http://», ролью «Подключаться к этому ПК». Затем закройте регистрацию: /admin → «Сопряжение».
http:// — только дома или через VPN. Снаружи — Tailscale Serve, см. docs/.
Роутер с Docker и Docker Compose, например OpenWrt: 64-битный процессор, от 1 ГБ памяти, USB-диск или SSD.
Скопируйте репозиторий на диск роутера и создайте настройки:
cp deploy/.env.pi.example deploy/.env.pi
mkdir -p deploy/dataВ deploy/.env.pi: PUBLIC_URL — адрес роутера, HUB_UID и HUB_GID — владелец deploy/data. Образ собирается под linux/arm64 и linux/amd64; во встроенной памяти ему не хватит места.
Соберите и запустите хаб:
docker compose -f deploy/docker-compose.pi.yml --env-file deploy/.env.pi up -d --buildТот же compose-файл, что на Pi: контейнер в сети самого роутера, чтобы magic-пакет уходил в LAN, и перезапускается сам (restart: unless-stopped).
Создайте аккаунт в приложении: «Другой сервер» → http://192.168.50.1:8080, включите «Разрешить http://». Код подтверждения — в журнале:
docker compose -f deploy/docker-compose.pi.yml --env-file deploy/.env.pi logs hub | grep "verification code"Код приходит на почту, когда у хаба есть ключ Resend (REMOTEK_RESEND_API_KEY) и адрес отправителя (REMOTEK_MAIL_FROM). Без них код пишется в журнал.
На ПК войдите в этот аккаунт в Remotek для Windows так же, с «Разрешить http://», ролью «Подключаться к этому ПК». Затем закройте регистрацию: /admin → «Сопряжение».
http:// — только дома или через VPN. Снаружи — Tailscale Serve, см. docs/.
Если роутер не запускает контейнеры, поставьте хаб на Pi, Mac или ПК. От роутера тогда нужны постоянные адреса в DHCP для хаба и ПК, а хабу вне дома — пробуждение по SSH командой из /admin (для OpenWrt etherwake -D -i br-lan {mac}).
Чтобы Remotek будил спящий или выключенный ПК, один раз настройте сам ПК.
UEFI/BIOS: включите «Wake on LAN», «Power On By PCI-E» или «Resume By PCI-E Device», выключите «ErP Ready» и «Deep Sleep».
Сетевая карта: Диспетчер устройств → адаптер → «Управление электропитанием»: отметьте все три флажка. «Дополнительно»: Wake on Magic Packet → Enabled.
«Разрешить отключение этого устройства для экономии энергии» не снимайте: без него флажки пробуждения становятся недоступны. Если ПК всё равно не просыпается — выключите Energy Efficient Ethernet. Проверка: команда ниже должна назвать адаптер.
powercfg /devicequery wake_armedБыстрый запуск: выключите — с ним после «Завершения работы» сетевая карта обесточена. Панель управления → Электропитание → Действия кнопок питания, или:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 0 /fКабель: ПК подключён к роутеру проводом. По Wi-Fi magic-пакет почти никогда не будит.
Кто будит: хаб в той же сети, второй ПК с Remotek дома или роутер по SSH, если у хаба есть VPN в домашнюю сеть. Выбирается в /admin; проброс портов не нужен.
Приложения по умолчанию подключаются к https://remotek.io. Адрес своего хаба вводится на экране входа: «Другой сервер».
SHA-256: —
SHA-256: —
Пока нет: APK скачивается с этого сайта, а его SHA-256 напечатан рядом с кнопкой.
Установщик пока не подписан сертификатом разработчика, поэтому SmartScreen сообщает о неизвестном издателе.
Да, если в домашней сети есть кому отправить magic-пакет: второй ПК с Remotek, роутер по SSH или сервер в той же сети.
Датчики, терминал, файлы и питание работают, а удалённый ввод Windows в заблокированный сеанс не пускает.
Владелец сервера видит метаданные и то, что передаётся в момент передачи; другие аккаунты не видят ничего.
С адреса [email protected] через Resend, а на своём сервере без ключа код печатается в журнал.