가이드 · 원격 데스크톱

자체호스팅 원격 데스크톱 구축 가이드

다른 네트워크에 있는 PC를 안전하게 원격 제어하려면 화면을 스트리밍하는 기능만으로는 부족합니다. 두 PC가 서로를 찾아 연결 경로를 협상하는 서버, 방화벽과 NAT를 넘는 통과 기술, 그리고 화면·입력·파일을 지키는 암호화가 함께 필요합니다. 이 가이드는 자체호스팅 원격 데스크톱을 구축할 때 필요한 세 가지 구성 요소 — 연결(NAT 통과)·세션(화면과 입력)·서버(코디네이터·릴레이·게이트웨이) — 를 정리하고, 완성된 앱으로 바로 시작하는 방법과 SDK로 직접 만드는 방법을 함께 소개합니다.

왜 원격 데스크톱을 자체호스팅하나요

원격 제어를 자체구축하려는 이유는 대체로 세 가지로 모입니다. 첫째는 데이터 주권입니다. 화면·입력·파일이 외부 클라우드를 거치지 않고, 조직이 운영하는 서버 안에만 머물러야 하는 조직이 있습니다. 둘째는 폐쇄망·사내망입니다. 인터넷 접근이 통제된 환경에서도 다른 네트워크에 있는 PC에 접속해 점검·지원해야 하는 경우입니다. 셋째는 비용과 종속성입니다. 다수의 PC를 상시 관제할 때, 사용자·세션당 과금되는 클라우드 SaaS 대신 직접 운영하는 서버로 비용 구조를 고정하려는 조직도 많습니다. 자체호스팅 원격 데스크톱은 이 세 가지를 모두 조직이 직접 통제할 수 있게 해 줍니다.

세 가지 구성 요소 — 연결 · 세션 · 서버

원격 데스크톱을 부품 단위로 나누면 아래 세 가지로 정리됩니다. 넷서브의 Classic·WebRTC 같은 완성된 앱도 결국 이 세 가지 위에서 동작합니다.

🔌 연결(Connect)

서로 다른 네트워크에 있는 두 PC가 직접 통신 경로를 찾는 계층입니다. NAT 홀펀칭으로 가능하면 P2P로 직결하고, 막히면 릴레이로 자동 폴백합니다.

🗂️ 세션(Session)

화면 캡처·인코딩·전송과 키보드/마우스 입력 주입, 클립보드·파일 전송을 담당하는 계층입니다.

🧩 서버(Server)

두 PC가 서로를 찾도록 중개하는 코디네이터, 직결이 안 될 때 트래픽을 중계하는 릴레이, 브라우저에서도 붙을 수 있게 하는 WSS 게이트웨이로 구성됩니다.

넷서브에서는 이 세 계층을 각각 ConnectKit(연결) · SessionKit(세션) · ServerKit(서버) SDK로 제공하며, 자체 제품에 조립해 쓸 수 있습니다.

완성된 앱으로 시작하기 — Classic과 WebRTC

SDK를 직접 조립하지 않고 지금 바로 쓸 수 있는 방법도 있습니다. Classic은 양쪽 PC 모두에 설치하는 데스크톱 앱으로, 폐쇄망·사내망에서의 상시 관제(MultiView)에 최적화되어 있고, 최근 버전부터는 설치 없이 브라우저로 접속하는 웹 뷰어도 함께 제공합니다. WebRTC는 접속하는 쪽(뷰어)이 설치 없이 브라우저만으로 연결하고, 계정·역할·권한을 조직 단위로 관리하는 데 강점이 있습니다. 둘 다 화면·입력·파일이 종단간 암호화되며, 연결 서버까지 자체호스팅해 데이터가 외부로 나가지 않게 운영할 수 있습니다.

구분ClassicWebRTCSDK로 직접 구축
설치양쪽 모두 설치형 앱호스트만 설치, 뷰어는 브라우저앱에 SDK를 직접 임베드
적합한 환경폐쇄망·사내망 상시 관제외부에서 간편 접속·헬프데스크자체 제품·브랜드에 통합
암호화종단간(J-PAKE)종단간(DTLS-SRTP)ConnectKit 종단간 암호화
서버자체호스팅 옵션(인트로듀서·게이트웨이·릴레이)자체호스팅 게이트웨이 옵션ServerKit 자체호스팅
가격현재 무료현재 무료ConnectKit 무료 + SDK Pro/ServerKit 유료 티어

어떤 네트워크에서도 연결되게 만들기

가정·사무실·폐쇄망처럼 방화벽과 NAT 뒤에 있는 두 PC를 직접 잇는 것이 자체호스팅 원격 데스크톱에서 가장 까다로운 부분입니다. 홀펀칭이 가능한 경로에서는 P2P로 직결하고, 막히면 릴레이로 자동 우회하며, 브라우저처럼 제한적인 환경에서는 WSS(443) 게이트웨이로 접속을 보장합니다. 세션 암호는 양쪽 끝에서만 만들어지므로, 중간의 연결 서버는 화면도 입력도 들여다볼 수 없습니다.

보안과 감사

자체호스팅이라고 해서 보안을 따로 설계할 필요는 없습니다. 종단간 암호화는 서버를 누가 운영하든 동일하게 적용되고, 여기에 세션 녹화와 무결성 해시, 중앙 관리 콘솔의 역할 관리(RBAC)·접근 정책을 더하면 누가·언제·무엇을 했는지 감사할 수 있는 체계가 완성됩니다. 규제·보안 요구가 높은 조직은 이 감사 기록까지 자체 인프라 안에 두어야 하므로, 서버 자체호스팅이 선택이 아니라 요건이 되는 경우가 많습니다.

SDK로 직접 만들기

자체 제품이나 브랜드에 원격 제어를 내장하고 싶다면 세 SDK를 조합합니다. 연결은 ConnectKit(영구 무료), 화면·입력은 SessionKit(Standard 무료, 하드웨어 H.264 등 고급 기능은 Premium 라이선스), 서버는 ServerKit(자체호스팅, 5피어까지 무료, 이후 피어 규모별 유료 티어)입니다. 자세한 구성별 가격은 가격 안내에서 확인할 수 있습니다.

자주 묻는 질문

원격 데스크톱을 자체호스팅하면 정말 데이터가 외부로 안 나가나요?
연결 서버(코디네이터·릴레이·게이트웨이)를 조직이 직접 운영하면 화면·입력·파일이 그 서버 밖으로 나가지 않습니다. 다만 세션 자체가 종단간 암호화되므로, 서버를 자체호스팅하지 않더라도 서버가 세션 내용을 들여다볼 수는 없습니다 — 자체호스팅은 서버 인프라 자체를 조직의 경계 안에 두는 것이 핵심입니다.

Classic과 WebRTC 중 무엇을 먼저 써봐야 하나요?
폐쇄망·사내망에서 다수 PC를 상시 관제한다면 Classic을, 외부에서 간편하게 접속하거나 계정·역할 관리가 필요하다면 WebRTC를 먼저 써보는 것을 권합니다. 둘 다 현재 무료로 제공되며 같은 연결 인프라 위에서 동작합니다.

직접 SDK로 원격 데스크톱을 만들면 어떤 구성 요소가 필요한가요?
연결을 담당하는 ConnectKit(무료), 화면·입력·클립보드·파일을 담당하는 SessionKit(Standard 무료, 고급 기능은 Premium), 그리고 두 기기가 서로를 찾도록 중개하는 서버인 ServerKit(자체호스팅, 5피어까지 무료)을 조합하면 됩니다.

완전히 무료로 자체호스팅할 수 있나요?
ConnectKit은 영구 무료이고 ServerKit도 최대 5피어까지는 무료입니다. Classic·WebRTC 앱 자체도 현재 무료입니다. 그 이상 규모나 SessionKit Premium 기능(하드웨어 H.264 등)이 필요해지면 개발자 시트·피어 규모별 유료 라이선스가 적용됩니다.

지금 바로 시작하려면 Classic 또는 WebRTC를 받아 보세요. 직접 만들고 싶다면 SDK 제품과 가격 안내를 확인하세요.
Guides · Remote desktop

Self-hosted remote desktop: a build guide

Securely controlling a PC on another network takes more than screen streaming. You also need a server where the two PCs find each other and negotiate a path, technology that traverses firewalls and NAT, and encryption that protects screen, input, and files. This guide breaks a self-hosted remote desktop into the three building blocks it needs — connect (NAT traversal), session (screen and input), and server (coordinator, relay, gateway) — then shows how to start with a finished app or build your own with the SDKs.

Why self-host a remote desktop

Teams reach for a self-built remote desktop for roughly three reasons. First, data sovereignty — screen, input, and files must never leave servers the organization itself runs. Second, closed / internal networks — you need to reach a PC on another network even where internet access is controlled. Third, cost and vendor lock-in — teams monitoring many PCs around the clock often want to fix costs with a self-run server instead of a per-user or per-session cloud SaaS bill. Self-hosting puts control over all three squarely in the organization's hands.

Three building blocks — connect, session, server

Break a remote desktop into parts and you get the three below. Finished NetServ apps like Classic and WebRTC run on exactly this stack.

🔌 Connect

The layer where two PCs on different networks find a path to talk directly — direct P2P via NAT hole-punching where it works, automatic relay fallback where it doesn't.

🗂️ Session

Screen capture, encoding and transport, keyboard/mouse input injection, and clipboard/file transfer.

🧩 Server

A coordinator that brokers discovery, a relay that forwards traffic when a direct link isn't possible, and a WSS gateway that keeps browsers connected too.

NetServ ships each layer as an SDK — ConnectKit (connect), SessionKit (session), and ServerKit (server) — that you can assemble into your own product.

Start with a finished app — Classic and WebRTC

You don't have to assemble the SDKs to get started today. Classic is an installable desktop app for both ends, tuned for always-on monitoring (MultiView) on closed / internal networks, and recent versions also ship an install-free browser web viewer. WebRTC lets the viewer side connect from a browser with no install and is strong on accounts, roles, and permissions managed per organization. Both encrypt screen, input, and files end-to-end, and both let you self-host the connection servers so data never leaves your org.

AspectClassicWebRTCBuild with the SDKs
InstallInstallable app on both endsHost installs; viewer uses a browserSDK embedded in your app
Best fitAlways-on monitoring on closed networksEasy external access · helpdeskYour own product / brand
EncryptionEnd-to-end (J-PAKE)End-to-end (DTLS-SRTP)ConnectKit end-to-end
ServerSelf-host option (introducer · gateway · relay)Self-host gateway optionSelf-hosted ServerKit
PriceFree nowFree nowConnectKit free + paid SDK Pro / ServerKit tiers

Connecting on any network

Linking two PCs behind firewalls and NAT — at home, in an office, on a closed network — is the hardest part of a self-hosted remote desktop. Where hole-punching works, the two ends connect directly (P2P); where it's blocked, they fall back automatically to a relay; and in restrictive environments like a browser, a WSS (443) gateway keeps the connection working. The session key is created only on the two ends, so no server in the middle can see screen or input.

Security and audit

Self-hosting doesn't mean designing security from scratch. End-to-end encryption applies the same way regardless of who runs the server; add session recording with an integrity hash and a central console's role management (RBAC) and access policy, and you have a system you can audit for who did what and when. For regulated or high-security organizations, that audit trail also needs to stay inside their own infrastructure — which is often why self-hosting the server becomes a requirement, not a preference.

Building it yourself with the SDKs

To embed remote control in your own product or brand, combine the three SDKs: connection via ConnectKit (free forever), screen and input via SessionKit (Standard is free; advanced features like hardware H.264 need a Premium license), and the broker server via ServerKit (self-hosted, free up to 5 peers, then paid tiers by peer scale). See exact pricing per configuration on the Pricing page.

Frequently asked questions

Does self-hosting a remote desktop really keep data from leaving?
Run the connection servers (coordinator, relay, gateway) yourself and screen, input, and files never leave that server boundary. That said, sessions are end-to-end encrypted regardless — even without self-hosting, the server can't see session content. Self-hosting is specifically about keeping the server infrastructure itself inside your organization's boundary.

Should I try Classic or WebRTC first?
For always-on monitoring of many PCs on a closed / internal network, try Classic first; for easy access from outside or when you need accounts and role management, try WebRTC first. Both are free right now and run on the same connectivity infrastructure.

What components do I need to build my own with the SDKs?
Combine ConnectKit (free) for the connection, SessionKit (Standard free, advanced features Premium) for screen, input, clipboard, and files, and ServerKit (self-hosted, free up to 5 peers) as the broker server that lets the two devices find each other.

Can I self-host completely for free?
ConnectKit is free forever and ServerKit is free up to 5 peers. Classic and WebRTC themselves are also free right now. Beyond that scale, or once you need SessionKit Premium features (like hardware H.264), paid licenses apply by developer seat or peer scale.

Ready to start now? Get Classic or WebRTC. Building your own? See the SDK Products and Pricing.