본문 바로가기
DevOps/Cloud

[Linux] 포트포워딩

by 태옹 2021. 6. 30.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000

위와 같은 명령어를 실행하게 되면 

80포트를 5000포트로 포워딩시켜주는 기능을 한다.

 

 

이것을 포트포워딩이라고 부른다. (리눅스 기본 제공)

이전에 우리가 EC2 인스턴스의 보안 그룹에서 규칙편집을 해줄 때 80포트를 열어두었는데, 그 80포트는 http의 포트번호를 말한다. http 요청에서는 80포트가 기본이기 때문에, 굳이 :80을 붙이지 않아도 자동으로 연결된다. 즉, http가 붙은 경우 :80는 생략이 가능하다.

(예를 들어 우리가 네이버를 접속하게 되면 네이버의 URL주소를 확인할 수 있다. 네이버의 URL주소는  https://www.naver.com/이다.  때 뒤에 :80 포트를 붙여주더라도 동일하게 작동한다. www.naver.com:80해도 같다. 결국 http를 적어주거나 :80포트를 적어주거나 하면 되는 것)

 

그럼 우리가 EC2인스턴스의 서버에 접근할 때 어떻게 했는지 생각해보자.

ip주소 + :5000을 해줬던 것 같다(5000포트에서 웹 서비스가 실행되고 있음). 근데 여기서 :5000을 제거하고 입력해보자.

같은 기능을 한다는 것을 확인해보면 여기서 포트포워딩의 개념을 이해할 수 있다.

우리가 굳이 5000포트로 접속할 때마다 :5000을 붙여주지 않고 접속을 할 수 있게 하는 것이 포트포워딩이다. 80포트로 오는 요청을 5000포트로 전달하게 하면 우리가 url에 퍼블릭ip주소만 입력하더라도 80포트에서 확인하고 5000포트로 자동으로 넘겨주는 작업을 한다.

 

 

댓글