Tips

포트포워딩으로도 외부에서 접속이 안 될 때: Ngrok으로 로컬PC 서버에 띄우기

Hyunie 2021. 10. 27. 21:39
728x90
반응형

 앞서 포스팅한 포트포워딩으로도 webhook에서 로컬 jenkins에 연결하는 것에 실패했다. 원인은 자세히 알아봐야하지만 아마 집에서 사용하는 개인 공유기가 바로 인터넷에 연결되어있는 것이 아니라 건물에서 사용하는 공유기에 연결되어 있는 것 때문이 아닌가(포트포워딩이 두 번 필요한 상황이지만 건물 공유기에 내가 접속할 수 없으므로 불가)로 추측된다.

 로컬 Jenkins에 연결하는 것을 포기하고 EC2에 띄운 젠킨스를 사용하려다가 Ngrok을 사용하면 외부에서 접근 가능한 dns를 만들 수 있다고 하여 시도해봤다. 이전 포스팅에서 적었듯 외부에서 내 컴퓨터에 접근하기 위해서는 포트포워딩을 하거나 공인 IP를 돈을 주고 사야하는데, Ngrok을 사용하면 공인 IP를 만들어 주는 느낌으로 외부에서 로컬 컴퓨터로 연결 가능하게 해준다.

 

Ngrok 사용하기

1. 설치하기

$brew install --cask ngrok

2. 연결하기

$ngrok http <접속원하는 포트번호>

 예를 들어 나는 로컬 컴퓨터에 설치되어있는 젠킨스에 접속하고 싶고, 젠킨스의 포트번호는 8080이므로 `ngrok http 8080`을 수행하면 다음과 같은 화면을 볼 수 있다.

 여기에서 빨간색 네모에 있는 주소가 외부에서 접근 가능한 public dns가 된다. 이것을 DNS Tunneling이라고 하는데, 데이터를 DNS query-response 메세지 속에 숨겨서 감시 소프트웨어에 탐지되지 않고 전달하는 기법이다.

 

 핸드폰으로 접속되는 것은 확인했다 (개신기..). 웹훅은 여전히 안되는데 뭔가 다른 설정이 잘못된 듯 하다.

728x90
반응형