무인 장치 원격 관제(RMM) 가이드 — 키오스크·사이니지·산업용 PC
매장의 키오스크, 역사·병원의 디지털 사이니지, 공장의 산업용 PC와 PLC 게이트웨이처럼 사람이 상주하지 않는 기기는 관리 방식 자체가 다릅니다. 화면 앞에 사람이 없으니 동의를 구할 대상도 없고, 대신 대량 프로비저닝·원격 명령 실행·상태 모니터링이 핵심이 됩니다. 이 가이드는 무인 장치 원격관리(RMM)를 CGNAT·방화벽 뒤에서 VPN 없이 구축하는 방법을 정리합니다.
무인 장치 관제가 일반 원격 제어와 다른 점
키오스크·사이니지·산업용 PC는 기본적으로 화면을 들여다보는 일보다 상태를 확인하고 명령을 내리는 일이 더 잦습니다. 오프라인 여부, 디스크·CPU 부하, 실행 중인 프로세스 같은 텔레메트리를 상시 수집하고, 필요할 때 원격 명령을 실행하거나 설정·펌웨어를 배포하는 RMM(원격 모니터링·관리) 채널이 항상 열려 있어야 합니다. 화면을 직접 보는 것은 문제가 생겼을 때 필요한 보조 수단입니다.
핵심 과제 — 대량 프로비저닝
기기가 수십 대를 넘어가는 순간 한 대씩 수동으로 설정하는 방식은 무너집니다. 콘솔이나 CLI에서 플릿을 사전 등록하고, 기기별로 고유한 enroll 번들(agent.json)을 발급해 배포하면, 각 기기는 처음 접속할 때 대기 → 온라인 상태로 자동 전환됩니다. 수백~수천 대 규모에서도 사람이 개입하는 단계는 번들을 생성·배포하는 것뿐입니다.
VPN 없이 CGNAT·방화벽을 넘기
매장·공장 현장의 네트워크는 대부분 CGNAT나 방화벽 뒤에 있고, 인바운드 포트를 열어 줄 수도 없습니다. 무인 장치의 에이전트는 아웃바운드로만 코디네이터에 연결을 유지하고, 운영자가 접속을 요청하면 홀펀칭 P2P가 가능한 경로로 직결하거나, 막히면 릴레이로 자동 우회합니다. 별도 VPN 터널이나 포트포워딩 설정 없이도 가정용 네트워크·폐쇄망의 장치에 접속할 수 있고, 연결은 종단간 암호화(J-PAKE·AES-256-GCM)되어 중계 서버도 내용을 볼 수 없습니다.
핵심 기능
📦 대량 프로비저닝 · 등록
플릿을 콘솔/CLI로 사전 등록하고 기기별 enroll 번들을 발급합니다. 첫 접속 시 대기 → 온라인으로 자동 전환.
🛠️ 원격 관제(RMM)
인벤토리·상태 수집, 원격 명령 실행, 버전 관리되는 설정 배포(config-push).
⬆️ 파일 · 펌웨어 배포
청킹·재개·SHA-256 검증·원자적 적용으로 헤드리스 기기까지 안전하게 업데이트.
🖥️ 브라우저 라이브 화면
설치 없이 브라우저로 화면을 보고 제어. 제어·텔레메트리와 화면이 한 연결 위에서 함께 흐릅니다.
🚨 플릿 모니터 · 알림
오프라인·저디스크·고부하 같은 상태 전환을 감지해 웹훅/Slack으로 조기 경보.
🔒 자체호스팅 · 데이터 주권
연결 서버·콘솔을 조직이 직접 운영해 화면·명령·데이터가 외부 클라우드를 거치지 않습니다.
규모별 접근 방식
| 규모·상황 | 접근 방식 |
|---|---|
| 소규모 실험·PoC | ConnectKit + DeviceKit SDK로 직접 프로토타입 — RPC·텔레메트리부터 |
| 화면 확인까지 필요 | DeviceKit의 session 서브채널에 SessionKit을 얹어 제어+화면을 한 연결로 |
| 수십~수천 대 상용 운영 | EdgeReach — 프로비저닝 CLI·중앙 콘솔·웹 뷰어까지 온프렘으로 도입 |
EdgeReach는 이 구성 요소들을 제품화한 도입형 솔루션입니다. 에이전트는 Windows·Linux·macOS에서 동작하며, Linux·macOS에서도 실제 화면 캡처·입력 주입이 검증되었고, VPN 없이 실제 가정용 네트워크 환경에서 클라우드 코디네이션 서버까지 연결하는 현장 테스트를 통과했습니다.
펌웨어·설정 롤아웃 전략
수백~수천 대 규모에서는 한 번에 전체 배포하기보다 단계적으로 확산하는 편이 안전합니다.
- 카나리 그룹 — 전체 기기의 일부(예: 5~10%)에 먼저 배포하고 상태를 관찰합니다.
- 버전 태깅 — 배포한 설정·펌웨어 버전을 기기별로 기록해, 문제 발생 시 어떤 버전이 배포됐는지 즉시 조회합니다.
- 자동 중단 기준 — 오프라인 전환·부팅 실패 같은 신호가 임계치를 넘으면 배포를 중단하고 원인을 조사합니다.
- 점검 창구 — 매장 영업시간, 사이니지 운영 시간 등을 피해 배포 시간대를 예약합니다.
플릿 모니터·알림 기능으로 오프라인·저디스크·고부하 전환을 감지하면, 롤아웃 중 발생하는 이상 징후를 배포 직후에 바로 포착할 수 있습니다.
자주 묻는 질문
VPN 없이 CGNAT 뒤의 무인 장치에 어떻게 접속하나요?
장치의 에이전트가 먼저 코디네이터(시그널링 서버)로 아웃바운드 연결을 열어 둡니다. 운영자가 접속을
요청하면 홀펀칭으로 가능한 경우 P2P 직결을, 막히면 릴레이로 자동 폴백해 연결합니다. 장치 쪽에서 인바운드
포트를 열 필요가 없으므로 VPN이나 포트포워딩 없이도 CGNAT·방화벽 뒤에서 접속할 수 있습니다.
수백~수천 대 기기를 어떻게 한 번에 등록하나요?
콘솔이나 CLI로 플릿을 사전 등록하고 기기별 enroll 번들(agent.json)을 발급합니다. 이 번들을 배포하면
기기가 처음 접속할 때 대기 상태에서 온라인으로 자동 전환되어, 수동으로 한 대씩 설정할 필요가 없습니다.
설정이나 펌웨어를 잘못 배포하면 기기가 먹통이 되지 않나요?
파일·펌웨어 배포는 청킹·재개·SHA-256 무결성 검증 후 원자적으로 적용되도록 설계되어 있어, 전송이 중간에
끊기거나 손상된 상태로 적용되는 상황을 방지합니다. 그래도 대규모 배포 전에는 일부 기기로 단계적
롤아웃을 하는 것이 안전합니다.
무인 장치의 화면을 실시간으로 봐야 할 때는 어떻게 하나요?
브라우저에서 설치 없이 바로 화면을 보고 제어할 수 있습니다. ServerKit의 웹 뷰어 게이트웨이가 온프렘에서
세션을 종단·디코드해 브라우저로 재전송하며, 제어·텔레메트리와 화면이 하나의 연결 위에서 함께 흐릅니다.
Unattended device RMM guide — kiosks, signage, industrial PCs
Store kiosks, digital signage in stations and hospitals, industrial PCs and PLC gateways on a factory floor — unattended devices need a different management style entirely. There's no one in front of the screen to ask for consent, so the job becomes bulk provisioning, remote command execution, and status monitoring instead. This guide covers building unattended device RMM (remote monitoring and management) behind CGNAT and firewalls, with no VPN.
How unattended fleet management differs from ordinary remote control
Kiosks, signage, and industrial PCs mostly need status checks and commands, more than someone watching a screen. A persistent RMM (remote monitoring and management) channel needs to stay open, continuously collecting telemetry — online/offline, disk/CPU load, running processes — and executing remote commands or pushing config/firmware when needed. Watching the screen directly is the fallback for when something's already gone wrong.
The core challenge — bulk provisioning
The moment a fleet passes a few dozen devices, configuring each one by hand breaks down. Pre-register the fleet from a console or CLI and issue a unique enrollment bundle (agent.json) per device; each device then flips awaiting → online automatically on first contact. At a scale of hundreds or thousands, the only manual step left is generating and distributing the bundles.
Crossing CGNAT and firewalls with no VPN
Store and factory-floor networks usually sit behind CGNAT or a firewall, and opening an inbound port often isn't an option. An unattended device's agent keeps an outbound-only connection to the coordinator; when an operator requests access, the two ends connect directly via hole-punch P2P where possible, or fall back automatically to a relay. There's no VPN tunnel or port-forwarding to configure, and devices on a home network or closed network are reachable this way — with the connection end-to-end encrypted (J-PAKE / AES-256-GCM) so even the relay server can't see the content.
Key features
📦 Bulk provisioning & enrollment
Pre-register a fleet from console/CLI and issue a per-device enrollment bundle. Auto-flips awaiting → online on first contact.
🛠️ Remote management (RMM)
Inventory and status, remote command execution, versioned config-push.
⬆️ File & firmware delivery
Chunked, resumable, SHA-256-verified, atomically applied — updates safe even for headless devices.
🖥️ Browser live screen
See and control the screen from a browser, no install — control, telemetry, and screen ride one connection.
🚨 Fleet monitor & alerts
Detect offline / low-disk / high-load transitions and alert via webhook / Slack early.
🔒 Self-hosted · data sovereignty
Run the connection servers and console yourself so screen, commands, and data never pass through an outside cloud.
An approach for every scale
| Scale / situation | Approach |
|---|---|
| Small-scale experiment / PoC | Prototype directly with ConnectKit + DeviceKit SDKs — starting with RPC and telemetry |
| Need to see the screen too | Mount SessionKit on DeviceKit's session sub-channel so control and screen ride one connection |
| Production at tens to thousands of devices | EdgeReach — an onboarded, on-prem solution with a provisioning CLI, central console, and web viewer |
EdgeReach packages these building blocks into an onboarded solution. Its agent runs on Windows, Linux, and macOS, with real screen capture and input injection verified on Linux and macOS, and it has passed a real-NAT field test connecting a home-network device to the cloud coordination server with no VPN.
Firmware and config rollout strategy
At a scale of hundreds to thousands of devices, a staged rollout is safer than pushing everything at once.
- Canary group — deploy to a slice of the fleet first (say, 5-10%) and watch its status.
- Version tagging — record which config / firmware version each device is running, so you can look up exactly what shipped if something goes wrong.
- Auto-halt thresholds — stop a rollout and investigate when signals like offline transitions or boot failures cross a threshold.
- Maintenance windows — schedule pushes outside store hours or signage operating hours.
Fleet monitoring and alerts that detect offline / low-disk / high-load transitions let you catch anomalies during a rollout right after they appear.
Frequently asked questions
How do I reach an unattended device behind CGNAT with no VPN?
The device's agent first opens an outbound connection to the coordinator (signaling server). When an operator
requests access, it connects directly via hole-punch P2P where possible, or falls back automatically to a
relay. Since the device never needs an inbound port open, it's reachable behind CGNAT and firewalls with no VPN
or port-forwarding.
How do I enroll hundreds to thousands of devices at once?
Pre-register the fleet from a console or CLI and issue a per-device enrollment bundle (agent.json). Distribute
the bundle and each device automatically flips from awaiting to online on first contact — no manual per-device
setup.
Won't a bad config or firmware push brick devices?
File and firmware delivery is chunked, resumable, SHA-256-verified, and applied atomically, which prevents a
partial or corrupted transfer from ever being applied. Even so, a staged rollout to a subset of devices before
a large push is the safer practice.
What if I need to see an unattended device's screen live?
You can view and control it straight from a browser, no install. ServerKit's web-viewer gateway terminates and
decodes the session on-prem and re-serves it to the browser, with control, telemetry, and screen riding one
connection.