DevOps29일차 - permission denied 0.0.0.0:80 에러 해결

문한성·2023년 4월 17일
0

부트캠프

목록 보기
54/123
post-thumbnail

aws EC2로 인스턴스를 열고 해당 인스턴스에서 npm start를 하였으나 해당 오류가 발생하였다.

에러 원인

해석해보면 80번 포트에 대한 접근권한이 없다는 의미이다.
검색을 통해 알아본 에러의 원인은 리눅스에서 별도로 1024 이상의 포트를 쓸경우에는 root권한이 필요하지 않으나, 1024이하의 well known port를 사용하려면 root 권한이 필요했다.
내가 생성한 인스턴스의 OS는 Ubuntu였기 때문에 root권한을 주거나 다른 포트로 변경 해줘야했다.

에러 해결

방법1

해당 폴더와 해당 폴더에 있는 모든 파일의 소유를 root 계정으로 바꿔주고 루트로 접속해서 실행하면된다.

// ex) $ sudo chown -R root:root nestSetting/
$ sudo chown -R root:root 폴더이름

chown을 사용해서 하위 폴더와 파일들까지 모두 root로 변경할 수 있다.

방법2

root계정으로 로그인하여 실행 할 수 있다.

sudo su

방법3 - 사용한 방법

서버를 1024번 이상의 폴더에서 열고 iptable을 사용해서 redirect 해주는 방법을 사용할 수도 있다.

  • 기존 서버의 포트를 80번에서 8080으로 변경 (1024번 이상의 포트번호면 아무거나 상관없다.)

  • 서버 실행

  • 아래 명령어를 통해서 80포트를 8080포트로 redirect

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

에러 해결 후..

  • 방법1과 방법2를 사용해보았으나 에러 메세지가 뜨지않던 경우는 있었으나 결국 80번 포트로 접속시 정확하게 의도한 페이지가 뜨지 않았다.
  • 방법3을 사용했을때 접속했을때 의도한 페이지를 볼 수 있었다.
  • 시간이 없어서 해결이 완료되는대로 넘어갔지만 같은 오류 발생시 다른 방법이 되지 않았던 이유를 알고싶다.
profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글