Cloudflare 및 Tailscale Funnels의 대안 Self-hosted Gateway

 

외부에 포트오픈등을 할수 없는 상황이라면 사용해볼 수 있을듯합니다.

 

image.png.jpg

 

개요

이 프로젝트는 Caddy 및 NGINX를 사용하여 RPoVPN(Reverse Proxy-over-VPN) WireGuard 터널 프로비저닝을 자동화합니다 . docker-compose파일에 정의된 Docker Compose 서비스를 공용 인터넷에 노출하는 데 특히 적합합니다 . 코드나 API는 없으며 매우 일반적인 NGINX 구성과 짧은 프로비저닝 bash 스크립트만 있습니다. TLS 인증서는 Let's Encrypt 또는 ZeroSSL을 통해 Caddy의 자동 HTTPS 기능으로 자동으로 프로비저닝됩니다.

 

사용 사례

  1. RPoVPN은 집에서 자체 호스팅되는 애플리케이션에 원격으로 액세스하기 위한 일반적인 전략입니다. 다음과 같은 문제를 해결합니다.
  • 이중 NAT 뒤 또는 CGNAT(Starlink, 모바일 인터넷)를 수행하는 ISP를 통해 자체 호스팅됩니다.
  • 액세스 부족으로 인해 로컬 네트워크에서 포트포워딩할 수 없습니다.
  • 자주 변경될 수 있는 동적으로 할당된 IP가 있습니다.
  1. RPoVPN을 사용하는 것은 네트워크 보안 및 개인정보 보호 관점에서 자체 호스팅에 이상적입니다.
  • 고정 IP의 필요성을 없애거나 집의 공용 IP 주소를 전 세계에 노출합니다.
  • 홈 네트워크 및 기타 로컬 Docker 서비스에서 로컬로 노출된 서비스를 격리하기 위해 Docker의 고급 네트워크 격리 기능(Linux 네트워크 네임스페이스 덕분에)을 활용합니다.
  • 오픈 소스 기술(WireGuard, Caddy 및 NGINX)을 기반으로 구축되었습니다.

 

특징 및 이점

 

  • Cloudflare Tunnels, Tailscale Funnel, ngrok 등에 대한 Docker 기본 자체 호스팅 대안입니다.
  • 완전히 자체 호스팅 및 자체 관리되며 로컬 및 원격 터널링 구성 요소가 포함됩니다.
  • 사용자 지정 코드가 없으며 이 프로젝트는 기존의 전투 테스트를 거친 FOSS 구성 요소를 활용합니다.
    • 와이어가드
    • Nginx(게이트웨이)
    • 캐디(클라이언트)
  • Caddy의 자동 https 덕분에 자동 클라이언트 측 HTTPS 인증서 프로비저닝.
  • 프록시 프로토콜을 통해 로컬 컨테이너에 전달되는 원격 클라이언트 IP
  • 사용자 이름과 비밀번호가 포함된 env 변수를 지정하여 기본 인증을 활성화합니다.
  • socat를 사용하여 일반 TCP/UDP 트래픽을 로컬 호스트로 프록시

 

 

사용해보기

 

 GitHub - fractalnetworksco/selfhosted-gateway: Self-hosted Docker native tunneling to localhost. Expose local docker containers to the public Internet via a simple docker compose interface.github.comSelf-hosted Docker native tunneling to localhost. Expose local docker containers to the public Internet via a simple docker compose interface. - fractalnetworksco/selfhosted-gateway