Cloudflare 및 Tailscale Funnels의 대안 Self-hosted Gateway
외부에 포트오픈등을 할수 없는 상황이라면 사용해볼 수 있을듯합니다.
개요
이 프로젝트는 Caddy 및 NGINX를 사용하여 RPoVPN(Reverse Proxy-over-VPN) WireGuard 터널 프로비저닝을 자동화합니다 . docker-compose
파일에 정의된 Docker Compose 서비스를 공용 인터넷에 노출하는 데 특히 적합합니다 . 코드나 API는 없으며 매우 일반적인 NGINX 구성과 짧은 프로비저닝 bash 스크립트만 있습니다. TLS 인증서는 Let's Encrypt 또는 ZeroSSL을 통해 Caddy의 자동 HTTPS 기능으로 자동으로 프로비저닝됩니다.
사용 사례
- RPoVPN은 집에서 자체 호스팅되는 애플리케이션에 원격으로 액세스하기 위한 일반적인 전략입니다. 다음과 같은 문제를 해결합니다.
- 이중 NAT 뒤 또는 CGNAT(Starlink, 모바일 인터넷)를 수행하는 ISP를 통해 자체 호스팅됩니다.
- 액세스 부족으로 인해 로컬 네트워크에서 포트포워딩할 수 없습니다.
- 자주 변경될 수 있는 동적으로 할당된 IP가 있습니다.
- 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