# Show GN: 공유기 설정 없이 로컬 서버에 영구 HTTPS URL을 붙여주는 SSH 터널 서비스를 만들었습니다

> Clean Markdown view of GeekNews topic #29469. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=29469](https://news.hada.io/topic?id=29469)
- GeekNews Markdown: [https://news.hada.io/topic/29469.md](https://news.hada.io/topic/29469.md)
- Type: show
- Author: [litdemon](https://news.hada.io/@litdemon)
- Published: 2026-05-13T19:54:50+09:00
- Updated: 2026-05-13T19:54:50+09:00
- Original source: [natnest.site](https://natnest.site)
- Points: 1
- Comments: 0

## Topic Body

서비스 링크: https://natnest.site  
클라이언트 소스: https://github.com/litdemon/natnest-client  
  
  ---  
  안녕하세요. SSH 리버스 터널 기반으로 로컬 서버를 외부에 노출하는 서비스 NatNest를 만들었습니다.  
  
  run local server 8080  
  
natnest 8080 → https://yourname.natnest.site  
  
  ---  
  만들게 된 계기  
  
집에 맥 미니가 한 대 있고 거기서 Ollama를 돌립니다.   
밖에서도 쓰고 싶었는데 매번 포트 포워딩 설정이 걸림돌이었습니다.   
공유기 관리자 페이지 들어가서 포트 열어 사용했습니다.   
  
그러다 Google에 Dialogflow를 사용하면서 Webhook(fullfilment)을 등록해야 하는 일이 있었습니다.   
https를 요구 했고 Domain과 인증서를 준비해서 Nginx 띄우고 reverse proxy 만들어 연결까지 해야 했습니다.   
  
다른 개발자도 같은 상황에서 저와 똑같은 작업을 해야 했습니다. 설명을 해야 줘야 하는데   
  
  "그냥 직접 만들면 어떨까?" 하고 시작한 게 NatNest입니다.  
  
Client만 만든게 아님니다. Nginx + Rua, Redis, DB, api server, Tunnel-server(ssh server)등등 여러 서버들은 묶어 만들어진 것이 NatNest 입니다.  
  
만들면서 알았습니다. ngrok과 Cloudflare Tunnel로 똑같은 서비스가 있다는 것을 ㅠ.ㅠ  
  
  ---  
  어떻게 동작하나요  
  
  클라이언트(CLI)가 서버로 SSH 리버스 터널을 연결하면, 서버가 서브도메인 → 내부 포트 매핑을 Redis에 등록합니다. 이후 외부에서 https://yourname.natnest.site 로 요청이 들어오면  OpenResty(Nginx + Lua)가 Redis를 조회해 해당 SSH 터널 포트로 프록시합니다.  
  
  외부 요청 → [Nginx + Lua] → Redis 조회 → SSH 터널 포트 → 로컬 서버  
  
  클라이언트는 백그라운드 watchdog 프로세스가 SSH 연결을 유지하기 때문에, 터미널을 닫거나 네트워크가 잠깐 끊겨도 5초 안에 자동 재접속합니다.  
  
  ---  
  ngrok / Cloudflare Tunnel과 뭐가 다른가요  
  
NatNest : 영구 URL, 자체 호스팅, 웹훅 로그 뷰어  
Ngrok Free : 영구URL(❌), 자체 호스팅 안됨, 웹훅 로그 뷰어 (Pro 이상)  
 Cloudflare Tunnel : 영구URL(❌), Pro 이상, 없음(❌)  
   
저처럼 "영구 URL을 공짜로, 데이터는 내 서버 위에서"라는 분들에게 맞는 포지션입니다.  
  
가장 큰 장점은   
Ngrok 과 같은 서비스를 할 수 있는 솔루션을 가지고 있다는 것과  
여기에 달리는 댓글에 좋은 서비스는  바로 적용할 수 있다는 기민함입니다.   
  
정말로 개발자가 원하는 기능을 녹여 넣기 위한 첫 걸음 입니다.  
  
  ---  
  현재 상태 및 솔직한 한계  
  
  v0.5.1 기준으로 아래 기능이 동작합니다:  
  
  - 구글 계정 연결(OAuth Device Flow) + SSH 키 자동 생성  
  - 영구 서브도메인 + 와일드카드 Let's Encrypt HTTPS 자동 갱신  
  - 웹 대시보드(활성 터널 목록, 실시간 웹훅 로그)  
  - Linux(amd64·arm64), macOS, Windows 클라이언트 바이너리  
  
  
  아직 부족한 부분도 있습니다:  
  
  - Windows 빌드 CI/CD 자동화가 미완성 (수동 빌드 상태)  
  - 서버가 단일 서버에 홈에서 운영하는 서버라 레이턴시가 있음  
  - 서비스를 혼자 운영 중이라 서비스 레벨의 안정성(SLA) 보장은 어려운 상태  
  
  ---  
  설치해보시려면  
  
  ### Linux / macOS  
  curl -fsSL https://natnest.site/install.sh | bash  
  
  natnest setup     # Google 계정 연동  
  natnest 8080      # 로컬 8080 포트를 외부에 공개  
  
  ---  
  처음 외부에 공개하는 거라 사용 경험이나 "이런 기능이 있으면 좋겠다"는 의견이 있으시면 댓글로 남겨주시면 정말 감사하겠습니다.

## Comments



_No public comments on this page._
