오늘은 로컬 서버를 외부에서 접속해야 할 때 좋은 서비스를 하나 소개하려고 한다.
원래 로컬의 서버를 외부에서 접속하려면, 내 public ip를 직접 알려야 하므로 보안적으로 좋은 선택이 아니다. 또한 공유기에서 포트포워딩 설정을 하는 것 또한 번거롭다.
Ngrok은 이런 번거로움 없이 로컬 서버를 안전하게 인터넷에 띄울 수 있게 도와주는 서비스이다.
brew install ngrok/ngrok/ngrok
curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | \
sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && \
echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | \
sudo tee /etc/apt/sources.list.d/ngrok.list && \
sudo apt update && sudo apt install ngrok
choco install ngrok
add token
만약 html 파일을 서빙하고 싶으면, ngrok 홈페이지에 가입한 후 토큰을 발급받아야 한다.
[Getting Started] > [Your Auth Token]에서 Command Line을 터미널에 입력하면 토큰 등록이 끝난다.
local server start
로컬 서버를 시작한다. node, python, npm 등...
start ngrok
ngrok http <local-server-port-number>
로컬 서버의 포트 번호를 입력해서 ngrok을 켜준다.
연결이 완료 되면 위와 같이 뜨게 되는데, 이제 https://84c5df439d74.ngrok.io로 외부에서 접속을 하면 localhost:<port-number>
로 포워딩을 해준다.
ngrok을 시작하게 되면 ngrok client는 ngrok server와 local server를 잇는 secure tunnel을 생성하게 된다. 이 터널은 ngrok server와 localhost를 이어주는 VPN(Virtual Private Network)이 되고, 말하자면 ngrok server가 일종의 공개 리버스 프록시 서버인 셈이다.