리나 Dev토리

리눅스 80 to 8080 포트포워딩 본문

Web

리눅스 80 to 8080 포트포워딩

리나lina 2022. 4. 11. 13:23

포트포워딩(Port Forwarding)

 

현재 웹 서비스 실행한 것을 웹 브라우저에서 보려고 하면 :8080 을 뒤에 붙여줘야 한다.

이 포트 번호를 없애려면 어떻게 해야할까?

출처: https://o7planning.org/11363/redirect-port-80-443-on-ubuntu-using-iptables

HTTP 요청에서 80포트가 기본 포트이기 때문에, 굳이 80을 쓰지 않아도 자동으로 연결된다.

포트 번호를 입력하지 않아도 자동으로 접속하기 위해,

80포트로 접속하면 8080으로 전달하는 포트포워딩을 해본다.

 

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

 

로컬 포트포워딩 (80들어오는 요청을 8080으로 포워딩)

 

iptables : 리눅스상에서 방화벽을 설정하는 도구

-t : 테이블을 지정하는 옵션. 설정하지 않으면 filter 테이블을 default 로 지정

-t nat : NAT 기능을 사용하겠다

   NAT : Network Address Translation, ip와 port 등을 변환하는 역할,
           실무에서 대부분 서비스는 클라이언트의 ip, port를 내부 프로그램으로 돌릴 때 NAT 테이블을 사용

-A : 새로운 규칙을 추가하는 것(append)

-A PREROUTING : 목적지가 결정되기전에 적용한다

PREROUTING : 패킷을 INPUT rule 로 보내기 전 ip 와 port를 변경하는 역할

-i  : 새로운 규칙을 삽입(insert)

-i eth0 : Gateway의 eth0 인터페이스로 들어오는 패킷들에 적용한다

   eth0 : 랜카드의 지정 번지, 이더넷카드 번호0번 이라는 뜻

-p TCP : TCP 프로토콜이면(protocol)

-dport 80 : 목적지(destination) 포트 번호(접속하려는 포트번호가 80번이면..)

-j : 방화벽을 지난 후 패킷을 어떻게 처리해야 할지(jump)

REDIRECT : ~~로 리다이렉트 처리

--to-port : 사용할 destination port

 

Tomcat 등 서버에서 80포트를 사용하려고 하면

sudo등을 사용해서 root계정으로 실행해야 80포트를 사용가능하다.

 

80포트를 사용할 필요가 있을 경우

OS에서 제공하는 iptables을 사용해서 80포트를 다른 포트로 리다이렉트 해야한다.

 

위 명령어로 설정해주면 80으로 들어오는 모든 패킷을 8080으로 리다이렉트 처리한다.

 

 

참고. https://blog.outsider.ne.kr/580

        https://yurmu.tistory.com/31

'Web' 카테고리의 다른 글

웹 브라우저 동작 방법  (0) 2022.04.11
Comments