근데 이거 왜 안 됨?
아파치를 설치해도 로컬에서 접속이 안 되는 경우가 있다
안되는 경우 1
방화벽(ufw) 사용중일 경우 포트 80(HTTP), 포트 443(HTTPS) 를 열어야함
•
방화벽 상태 확인
sudo ufw status
Bash
복사
inactive 상태이면 사용중이 아닌거임
•
Apache 관련 두 포트 한 번에 열기
sudo ufw allow 'Apache Full'
Bash
복사
•
특정 포트만 열기
sudo ufw allow [port] [protocol] # 예시
sudo ufw allow 80 # 80번 포트에 대한 TCP/UDP 패킷 허용
sudo ufw allow 80/TCP # 80번 포트에 대한 TCP 패킷만 허용
Bash
복사
안되는 경우 2
방화벽 사용중이 아니라도 포트가 닫혀있으면 연결 불가
•
nmap 패키지 설치
sudo apt install nmap
Bash
복사
•
포트 열림 여부 확인
sudo nmap -p 80,443 localhost
Bash
복사
80번 포트는 열려있고 443 포트는 닫혀있다
실제로 192.153.0.153:443 으로 요청하면 연결이 안 되고 :80으로 요청하면 연결이 된다
주소창은 기본적으로 HTTP 서비스 (80번포트) 로 요청을 보내기 때문에 기존에 IP 주소만 입력해도 연결이 됐었던 것!
•
만약 둘 다 닫혀있으면?
둘 다 닫혀있으면 직접 열어줘야한다
/etc/apache2/ports.conf 수정
sudo vi /etc/apache2/ports.conf
Bash
복사
기본적으로 Listen 이 80으로 설정되어 있겠지만, 원하는 포트번호로 변경 후 아파치를 재시작해당 해당포트가 열리면서 해당 포트로의 사용이 가능해짐
기존에 닫혀있던 65432 포트가 열린 모습, 80으로 정상 연결이 되면 굳이 이렇게 할 필요는 없지만 보안상의 이유로 이렇게 하는 경우도 있다고함
이렇게 바꾸면 당연히 로컬 주소창에서 :65432로 입력해야 아파치 접속 가능
적고 나니까 그럼 둘 다 닫혀있는 경우는 없다고 봐야겠다 Apache2 install 하면서 해당 파일에 Listen 이 80인 상태로 시작 될 테니까