콘텐츠로 이동
ProxerProxerv0.13.0

Proxer

사설망의 HTTP, SSE, WebSocket 서비스를 위한 셀프 호스팅 리버스 터널입니다.

사설망에 있는 서비스에 안정적인 공개 URL이 필요할 때가 있습니다. 노트북의 개발 서버, 홈랩 장비의 대시보드, 작은 사무실 안쪽의 내부 도구처럼요. 그렇다고 그 네트워크로 들어오는 포트를 새로 열고 싶지는 않을 수 있습니다.

Proxer는 공개 엔드포인트를 직접 운영하는 리버스 터널입니다. 공개 Proxer 서버 하나를 띄우고, 사설망 쪽에서 클라이언트가 WebSocket으로 접속합니다. 클라이언트는 호스트 경로를 등록하고, 공개 HTTP, Server-Sent Events, WebSocket 트래픽을 자기 머신의 127.0.0.1:<port>로 전달합니다.

  • NAT나 방화벽 뒤의 HTTP 서비스에 공개 URL이 필요할 때.
  • 터널 서버를 직접 운영하는 VPS, 홈랩 엣지, 회사 인프라 안에 두고 싶을 때.
  • HTTP 스트리밍, SSE, WebSocket 업그레이드가 터널을 지나야 할 때.
  • proxy.example.comdemo.proxy.example.com처럼 호스트 기준 라우팅을 명확히 하고 싶을 때.

--domain proxy.example.com을 설정하면, --subdomain이 없는 클라이언트는 px-k7m3q9t2ab.proxy.example.com 같은 임의 서브도메인을 받습니다. --subdomain demo를 지정한 클라이언트는 demo.proxy.example.com을 처리하고, --subdomain @를 지정한 클라이언트는 루트 호스트 proxy.example.com을 처리합니다.

들어온 호스트가 등록된 경로와 맞지 않으면 Proxer는 404를 반환합니다. 연결된 클라이언트가 하나뿐이어도 거기로 보내지 않습니다. 덜 똑똑해 보일 수 있지만, 여러 터널이 서버 하나를 공유할 때 훨씬 예측하기 쉽습니다.

proxer server --listen 0.0.0.0:8080 --domain your-server.example.com --token dev-token
proxer http 3000 \
--server wss://your-server.example.com \
--subdomain demo \
--token dev-token
curl https://demo.your-server.example.com/

실제 배포에서는 dev-token 대신 긴 난수 토큰을 만들고 PROXER_TOKEN이나 플랫폼의 secret 저장소로 전달하세요.

처음부터 따라 하려면 시작하기를 보세요.