발견
Port Forwarding(포트 포워딩)이 안될때 - 80 to 8080
Dev_Green
2022. 8. 18. 13:24
1. 상황
URL 주소에서 매번 뒤에 :8080을 붙여주어야 하는 번거로움을 덜고자
8080 포트를 80 포트로 연결(redirect)해주려 한다.
* http 요청에서 80포트가 기본이므로, 굳이 :80을 붙이지 않아도 자동으로 연결이 된다.
아래는 터미널로 접속한 ubuntu 서버 상에서, 80 포트를 8080 포트로 redirect해주는 코드이다.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
2. 문제
위 코드를 실행시키고 브라우저에서 기존의 URL에서 :8080 을 제거하고 접속을 시도했더니 아무런 응답이 없었다.
코드를 실행하기 전과 다름 없는 상황, 즉 80 포트가 8080 포트로 연결되지 않은 것이다.
3. 해결
문제의 원인은 이전에 80 포트를 5000 포트로 연결해놓은 적이 있었기 때문이었다.
아래 결과값에서 가장 위에 있는 5000 포트로 포워딩 시켜놓은 부분 때문에 그 아래에 있는 8080 포트로의 포워딩이 정상적으로 작동될 수 없었다.
// 현재 포워딩 시켜놓은 포트를 확인
sudo iptables -t nat -L
따라서 5000 포트로의 포워딩을 지워야 한다.
5000 포트를 비롯해 8080 포트 하나만 남겨두고 나머지를 모두 삭제하였다.
// 포워딩 삭제
sudo iptables -D PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
다시 현재 포워딩 포트를 확인해봤을 때 8080 포트로의 포워딩 하나만 남았다.
여기까지 실행을 마치고 다시 포트 번호를 붙이지 않은(80 포트) URL로 접속해보았더니 정상적으로 8080 포트에서 작동하던 페이지로 redirect되는 것을 확인할 수 있었다.