소개
GoPort는 로컬 호스트를 인터넷에 안전하게 노출하는 오픈소스 네트워크 터널링 도구입니다. 개발자들이 웹훅 테스트, 데모 공유, API 엔드포인트 노출 등 다양한 목적으로 자신의 로컬 개발 환경을 외부에서 접근 가능하도록 만들어 줍니다. ngrok 및 jprq의 무료 대안으로 제공되며, 포트 포워딩이나 공용 IP 없이도 단일 명령어로 HTTPS 공용 URL을 생성할 수 있습니다.
상세정보
로컬 호스트를 공용 HTTPS 엔드포인트로 노출
단일 CLI 명령어로 실행 중인 로컬 포트를 공용 인터넷에 연결합니다. 이 과정에서 포트 포워딩, 방화牆 변경, 공용 IP 필요 없이 안전한 아웃바운드 연결만으로 작동합니다.
커스텀 서브도메인 지원
–custom 옵션을 사용하여 기억하기 쉬운 맞춤형 공용 URL을 요청할 수 있습니다. 예를 들어, goport http 8080 –custom myapp 명령은 https://myapp.goport.uz 형태의 URL을 생성합니다.
실시간 요청 모니터링 대시보드
터널 연결 시 로컬 대시보드가 자동으로 실행되어 들어오는 요청, 응답, 터널 상태, 레이턴시를 실시간으로 모니터링할 수 있습니다. 요청을 상세히 검사하고 각 코드 변경 후 다시 재생하는 것도 가능합니다.
WebSocket 프로토콜 지원
TCP 연결의 액세스 스트림 기술과 HTTP 업그레이드 감지를 통해 WebSocket 기반 애플리케이션이 원활하게 작동할 수 있도록 지원합니다.
셀프 호스팅 가능성
팀이 자체 관리하는 터널, 도메인, 인프라를 구축할 수 있어 벤더 종속 없이 사용할 수 있는 셀프 호스팅 옵션을 제공합니다.
Windows 설치
Chocolatey 패키지 관리자를 사용하여 간단하게 설치할 수 있습니다. 터미널에서 다음 명령을 실행합니다:
- choco install goport
macOS 설치
Homebrew를 사용하여 설치할 수 있습니다. 다음 명령을 실행합니다:
- brew tap muhammad-deve/goport
- brew install goport
Linux 설치
공식 설치 스크립트를 사용하여 바이너리를 다운로드하고 실행 권한을 설정합니다:
- curl -fsSL https://github.com/muhammad-deve/GoPort/releases/latest/download/goport-linux-amd64 -o /usr/local/bin/goport && chmod +x /usr/local/bin/goport
설치 확인
설치 후 다음 명령어로 버전을 확인할 수 있습니다:
- goport –version
인증 및 초기 설정
GoPort 계정을 생성한 후 대시보드에서 CLI 토큰을 생성하고 다음 명령으로 CLI를 인증합니다:
- goport auth <token>
터널 시작 및 URL 생성
로컬에서 실행 중인 애플리케이션의 포트를 지정하여 공용 HTTPS URL을 생성합니다:
- goport http 8080
터널이 준비되면 공용 URL이 터미널에 표시됩니다.
커스텀 URL 생성 및 관리
커스텀 서브도메인을 지정하거나 새로운 URL을 생성할 수 있습니다:
- goport http 8080 –custom myapp (커스텀 URL 생성)
- goport http 8080 –reset (새 URL 생성)
터널 종료
터미널에서 Ctrl+C를 눌러 터널을 안전하게 종료할 수 있습니다. GoPort는 자동으로 활성 세션을 제거하고 URL을 해제합니다.
이런 경우에 유용합니다
- 웹훅 테스트: Stripe, GitHub, Shopify 등의 서비스에서 발송하는 웹훅을 로컬 개발 환경에서 바로 수신하고 디버깅할 때 유용합니다.
- 데모 및 프로토타입 공유: 로컬에서 개발 중인 웹 애플리케이션의 데모 버전을 고객이나 팀원에게 빠르게 공유할 때 활용할 수 있습니다.
- 모바일 앱 개발: 모바일 기기에서 로컬 서버의 API 엔드포인트를 테스트해야 할 때, 공용 URL을 통해 접근할 수 있습니다.
- OAuth 리다이렉트 설정: OAuth 인증 흐름에서 콜백 URL을 로컬 개발 환경으로 설정할 때 사용할 수 있습니다.
- API 개발 및 테스트: 로컬에서 개발 중인 REST API나 GraphQL 엔드포인트를 외부 테스트 도구나 클라이언트 애플리케이션에서 접근해야 할 때 활용합니다.
지원 환경 및 기술 스택
GoPort는 다음 기술 스택을 기반으로 구축되었습니다:
- Go: CLI 및 터널 엔진
- Cobra: 명령줄 인터페이스
- yamux: TCP 스트림 멀티플렉싱
- PocketBase: 인증, 터널 관리, 서브도메인 레지스트리
- Next.js: 웹사이트 및 대시보드
운영체제별로 macOS는 Homebrew, Windows는 Chocolatey, Linux는 공식 설치 스크립트를 지원합니다.
기술적 특징
GoPort는 CLI와 서버 간의 영구적 TCP 연결을 사용하며, yamux로 구동되는 요청 멀티플렉싱을 적용합니다. 이를 통해 단일 TCP 연결에서 여러 스트림을 효율적으로 처리하며, NAT 및 방화墙 뒤에서도 안정적으로 작동합니다. 또한, 요청을 로컬 애플리케이션으로 전달할 때 원래의 공용 Host 헤더를 보존하여 Swagger UI, OpenAPI 및 호스트 기반 라우팅 프레임워크가 프로덕션 환경과 동일하게 작동하도록 지원합니다.
최신 버전 정보
현재 제공되는 Chocolatey 패키지의 버전은 0.1.0입니다. GitHub 저장소를 통해 최신 릴리스 및 변경 사항을 확인할 수 있습니다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


