Go WebAssembly와 grdp로 구축된 웹 기반 RDP 클라이언트

발행: (2026년 4월 25일 PM 07:59 GMT+9)
5 분 소요

Source: Hacker News

grdpwasm

Go WebAssembly와 grdp로 만든 웹 기반 RDP 클라이언트입니다.
플러그인 없이 브라우저에서 바로 Windows 원격 데스크톱 서버에 연결할 수 있습니다.

Architecture

Browser (WASM) ──WebSocket──► proxy (Go) ──TCP──► RDP Server

브라우저는 원시 TCP 소켓을 열 수 없기 때문에, 가벼운 Go 프록시 서버가 브라우저의 WebSocket 연결을 RDP 서버의 TCP 포트와 연결해 줍니다.

Requirements

  • Go 1.24 이상
  • 접근 가능한 RDP 서버 (Windows 또는 RDP 호환 호스트)

Build

git clone https://github.com/nakagami/grdpwasm.git
cd grdpwasm
make all

make all 은 다음을 생성합니다:

OutputDescription
static/main.wasm브라우저에서 실행되는 Go WASM 바이너리
static/wasm_exec.jsGo 런타임 JS 지원 파일
proxy/proxyWebSocket‑to‑TCP 프록시 + 정적 파일 서버

Run

make serve
# 또는 동일하게:
./proxy/proxy -listen :8080 -static static

그 후 브라우저에서 http://localhost:8080 을 엽니다.

Proxy options

FlagDefaultDescription
-listen:8080수신할 주소와 포트
-staticstatic정적 파일을 제공할 디렉터리

Usage

  1. 브라우저에서 http://localhost:8080 을 엽니다.
  2. 연결 양식을 작성합니다:
    • Host – RDP 서버의 호스트명 또는 IP 주소
    • Port – RDP 포트 (기본값 3389)
    • Domain – Windows 도메인 (로컬 계정은 비워 둡니다)
    • User – 사용자 이름
    • Password – 비밀번호
    • Width / Height – 초기 데스크톱 해상도
  3. Connect 를 클릭합니다.
  4. 원격 데스크톱이 캔버스에 표시됩니다. 키보드 포커스를 잡으려면 캔버스를 클릭합니다.
  5. Disconnect 를 클릭해 세션을 종료합니다.

Keyboard & Mouse

표준 키보드 입력은 모두 RDP 스캔 코드로 원격 데스크톱에 전달됩니다.
마우스 이동, 버튼 클릭, 스크롤 휠도 완전히 지원됩니다.

Note: 키보드 이벤트가 전달되려면 브라우저 탭이 포커스를 가져야 합니다. 키가 반응하지 않을 경우 캔버스 영역을 클릭하세요.

Audio

원격 오디오는 RDPSND를 통해 스트리밍되며, 브라우저의 Web Audio API를 사용해 재생됩니다 (PCM 44100 Hz, 스테레오, 16‑bit 부호 있는 리틀‑엔디언).

Security notes

프록시는 모든 출처(origin)로부터의 연결을 허용합니다. 신뢰할 수 있는 네트워크에서만 실행하거나, 인터넷에 노출하기 전에 인증을 추가하십시오.
자격 증명은 브라우저에서 프록시로 WebSocket을 통해 전송됩니다. 신뢰할 수 없는 네트워크에서 접근할 경우 HTTPS/WSS를 사용하세요 (예: nginx 또는 Caddy와 같은 TLS 종료 역방향 프록시 뒤에 프록시를 배치).

Development

이 저장소에는 ./grdp/ 아래에 grdp의 로컬 포크가 포함되어 있으며, 하나의 추가 사항이 있습니다: RdpClientDialer 필드가 있어 호출자가 사용자 정의 net.Conn 팩토리를 주입할 수 있습니다. 이를 통해 WASM 빌드가 TCP 대신 WebSocket으로 연결됩니다.

make wasm       # WASM 바이너리만 재빌드
make proxy      # 프록시 서버만 재빌드
make wasm_exec  # 로컬 Go 툴체인에서 wasm_exec.js를 갱신
make clean      # 모든 빌드 산출물 삭제

License

GPLv3 — 자세한 내용은 grdp LICENSE 를 참고하십시오.

0 조회
Back to Blog

관련 글

더 보기 »

Oxford All Souls College 일반 시험 [pdf]

죄송하지만, 제공해 주신 내용은 PDF 파일 바이너리 데이터이며 HTML이 아닙니다. 이 형식에서는 기사 텍스트를 추출하고 변환할 수 없습니다. 만약 제공해 주실 수 있다면...