본문 바로가기
프로그램개발/Linux(Apache.vim)

80과 443 포트가 안열리네요.

by 크레도스 2023. 5. 10.

■ 발생 문제 혹은 질문사항에 대한 자세한 기술:

아래 A 레코드 관련하여 웹 서비스가 연결이 안되는 원인을 찾았습니다.

80포트와 443포트가 안열려서 문제가 발생한 것으로 판단됩니다.(Bash로 확인 시 신규 서버 22번 포트는 열림).

그런데 AWS에서 기존에 돌아가는 서버를 AMI 복제하여 신규 서버로 만들었는데

iptables rule과 AWS 보안 규칙(인바운드, 아웃바운드) 등이 동일하게 적용된 것을 확인하였습니다.

이상한 점은 기존 서버가 AMI로 정상적으로 복제되었는데

기존 서버는 80과 443 포트가 열리고 신규 서버는 별짓을 해도 안열리네요.

혹시 AWS 서버 복제하고 AWS 보안 규칙과 우분투 서버 iptables rule 추가하는 것 말고

추가적으로 해봐야 할것이 있을까요?

아니면 이런 경험이 있으신 분은 도움 바랍니다.

일반적으로는 소프트웨어적으로 동일한 것으로 판단됨에 따라 하드웨어 문제로 생각되는데

AWS 문제는 아닐거 같고 분명 제 손가락이 버그인 것 같은데 모르겠네요.


답변
세가지 경우가 있을 수 있습니다. 리눅스 서버라면 sudo netstat -nap | grep tcp 했을때

1) 열려있는데 중간에서 차단된 경우
0.0.0.0:80 이라는 내용이 보이면 이 경우입니다.

2) 열리긴 열렸는데 잘못 열린 경우
127.0.0.1:80 이라는 내용이 보이면 이 경우입니다.

3) 아예 안열린 경우
위 둘 다 안보이는 경우입니다.

어떤 경우인지에 따라서 원인도 다르고 해법도 다릅니다. 1번 경우의 유력한 범인이 바로 iptables와 aws security policy인데 이것들은 채크해보셨다니 아마 이 케이스는 아닐겁니다. 2번 경우의 유력한 범인은 웹서버 설정에 binding address를 잘못 넣은 경우입니다. 3번 경우에 가장 유력한건 웹서버를 구동할때 root권한으로 구동하지 않았거나 웹서버 설정에 문제가 있어 구동에 실패한 경우입니다. 리눅스는 1024번 이하의 포트번호를 사용하려면 root권한이 필요하고, 설정문제라면 시스템 로그에서 확인 가능합니다.