웹사이트나 API 서버 등을 개발할 때 보통은 로컬에 개발환경이 구축되어 있으므로 외부에서 접근하려면 외부에서 접속할 수 있는 서버에 올리거나 해야 한다. 이는 일반적인 개발 단계이기는 하지만 배포단계가 아닌 개발단계에서 외부에 열어주어야 하는 경우에는 상당히 귀찮은 일이다.
예를 들어 만들고 있는 웹사이트를 기획자나 디자이너한테 공유해서 보여주고 의견을 들어야 한다거나 폰이나 태블릿에서 접속해서 테스트를 해보아야 하는데 같은 네트워크에 접속되어 있지 않다면 수정하고 배포하는 단계가 아주 귀찮아지기 마련이다.
(ngrok은) 방화벽 넘어서 외부에서 로컬에 접속 가능하게 하는 터널 프로그램이라고 할 수 있다.
포트 포워딩이 없어도 터널링을 통해서 외부에서 공유기에 연결된 컴퓨터의 포트로 직접 접속할 수 있게 하는 방법이 있습니다. 개중에 가장 많이 사용되는 툴이 바로 ngrok 입니다.
원리는 알 필요가 없습니다. 그냥 사용하시면 됩니다.
ngrok http 포트번호
를 입력한다.ngrok
을 입력해서 실행하는 방법도 있다. 공유기는 사설 네트워크를 만들면서 동시에 공인 아이피를 하나 할당 받습니다. 그래서 공유기에 연결된 모든 장비는 인터넷에 접근하기 위해서 반드시 공유기를 거쳐야만 합니다.
사설 아이피 대역은 여기 저기서 사용하기 때문에 공인 아이피처럼 특정한 기기를 가리키지 않습니다. 그래서 공유기가 보유한 공인 아이피를 알려줘야 합니다. 그러면 다른 사람들이 http://12.34.56.78:80 주소를 인터넷 브라우저에 입력하면 웹 서버에 연결이 될까요?
이렇게, 공인 아이피의 80번 포트로 들어오는 연결은 공유기에 도달하면 끝나버립니다. 왜냐하면 공인 아이피로 들어온 80번 포트의 연결을 공유기에서 컴퓨터 1, 2, 3 중에 어떤 곳으로 보내줘야 할 것인지를 판단하지 못하기 때문입니다.
포트 포워딩은 기본적으로 대부분의 공유기 설정에서 찾아볼 수 있습니다.