일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Gradle - Kotlin
- 쿼리에러
- create 모드
- 파이썬
- Intellij terminal jar
- springboot mysql
- restful api 명세서
- 데이터베이스
- logout http 메소드
- restful api 작성 방법
- 할일관리
- jpa 연관관계
- 테이블구성
- springboot
- Gradle - Groovy
- 어노테이션
- 연관관계
- ERD 수정
- intellij 속도 향상
- 테이블항목
- jpa
- restful 카멜케이스
- restful login 메소드
- auto ddl
- 알고리즘
- initializr
- SpringBoot개인프로젝트
- sendError()
- 아규먼트 리졸버
- 터미널 실행
- Today
- Total
리나 Dev토리
리눅스 80 to 8080 포트포워딩 본문
포트포워딩(Port Forwarding)
현재 웹 서비스 실행한 것을 웹 브라우저에서 보려고 하면 :8080 을 뒤에 붙여줘야 한다.
이 포트 번호를 없애려면 어떻게 해야할까?
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으로 리다이렉트 처리한다.
'Web' 카테고리의 다른 글
웹 브라우저 동작 방법 (0) | 2022.04.11 |
---|