포트포워딩 오류
포드 포워딩 방법
해당방법으로 포드 포워딩을 실행했는데 80 포트로 포워딩이 되지 않았다
처음 실행한 명령어
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
이 명령어는 포트 80으로 들어오는 TCP 트래픽 포트 8080으로 리다이렉트 하도록 iptables에 규칙을 추가하는 명령어이다
- -i eth0: eth0 인터페이스로 들어오는 트래픽만 처리하도록 지정합니다.
하지만 포워딩이 되지 않는다?? WHY???
그래서 두가지 방법을 확인 보았다
1. 방화벽 설정
2. iptables 규칙이 올바르게 추가되었는지 확인
문제확인
1. 방화벽설정
서버의 방화벽이 포트 80을 차단하고 있는지 확인
sudo ufw allow 80/tcp
결과
Rules updated
Rules updated (v6)
방화벽이 허용되어 있다는 메시지가 표시되었다!
이 부분은 문제없음
2. iptables 규칙 확인
- iptables 규칙 확인
sudo iptables -t nat -L -n -v
2-1. 중복된 iptables 제거
iptables 제거 후 다시 규칙 추가
sudo iptables -t nat -F PREROUTING
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
해당방법도 소용없음..
2-2. 네트워크 인터페이스 확인
시스템의 모든 네트워크 인터페이스의 상세 정보확인
ip a
해당 명령어로 확인해 보니 인터페이스 네트워크 이름이 eth0 이 아니라 enX0로 되어있었다!!
해결
1. 기존의 iptables 규칙을 초기화
sudo iptables -t nat -F PREROUTING
2. 다시 포트 포워딩 규칙을 추가
올바른 네트워크 인터페이스(enX0)를 사용하여 다시 포트 포워딩 규칙을 추가합니다.
sudo iptables -t nat -A PREROUTING -i enX0 -p tcp --dport 80 -j REDIRECT --to-port 8080
3. 규칙 확인
sudo iptables -t nat -L -n -v
iptables 규칙이 올바르게 추가되었는지 확인
enX0 인터페이스를 통해 포트 80에서 포트 8080으로 리다이렉트 되는 규칙이 있는지 확인
:8080 포트 번호를 때고 접속해 보니 접속이 되었다!!
네트워크 인터페이스 이름이 잘못되어있어서 포워딩 명령어가 먹히지 않았던 거였다!
포워딩 성공!!!
'DevOps > Aws' 카테고리의 다른 글
[AWS] 배포, EC2 (1) | 2024.10.31 |
---|---|
[AWS] Spring boot AWS 배포 - 도메인 연결 (가비아) (0) | 2024.07.05 |
[AWS] Spring boot AWS 배포 - 포트포워딩 & nohup적용 (0) | 2024.07.05 |
[AWS] Spring boot AWS 배포 - EC2 준비 , 배포 + thymeleaf에러 (0) | 2024.07.05 |
[AWS] Spring boot AWS 배포 - EC2 구매 (0) | 2024.07.05 |