WSL2에서 apache2 사용하기, + 외부 접속 가능하게 하기

2022. 3. 18. 03:38보안/환경설정

반응형

디버깅 로그

 

localhost에 웹브라우저로 접속하였으나 기존에 docker를 설치하여 docker 화면이 나왔다.

그래서 http://local.server.ip/ 들어갔으나 사이트에 연결할수 없음이 나와서

systemctl status apache2를 쳐보니

‘System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down’이라는 문구가 나왔다. 내가 사용하는건 wsl2이기에 systemctl 명령어를 사용하지 못해서 service apache2 start를 입력하였으나

Starting Apache httpd web server apache2 (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80

(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80

no listening sockets available, shutting down

이라는 메시지가 나와서 docker desktop에서

80번 포트를 사용하는 docker-tutorial을 종료하였고

service apache2 start을 누르고 service apache2 status를 입력하자

* apache2 is running 라는 정상적인 문구가 나왔다.

그 이후 http://localhost/:80에 접속하였으나 아직 docker tutorial이 나와서 hostname I ip주소를 알아내서 여기로 들어가니 성공적으로 Apache2 Ubuntu Default Page가 나왔다. 그 이후는 Apache2 Ubuntu Default Page에 나와 있는 데로 진행하여 내 컴퓨터에서는 성공적으로 화면을 띄웠다.

 

하지만 외부에서 접속하고자 하니 wsl은 내 컴퓨터에만 정보가 있고 컴퓨터가 사용하는 네트워크와 다른 ip주소를 사용하고 있어서 외부로부터 가상 머신에 접근을 할 수가 없었다.

그렇기에 발생된 이슈

https://github.com/microsoft/WSL/issues/4150#issuecomment-504209723

 

[WSL 2] NIC Bridge mode 🖧 (Has TCP Workaround🔨) · Issue #4150 · microsoft/WSL

Issue WSL 2 seems to NAT it's virtual network, instead of making it bridged to the host NIC. My goal is for a service running in Ubuntu in WSL 2 to be accessible from anywhere on my local netwo...

github.com

를 참고하여 자동으로 연결되게끔 설정해 주었고, 방화벽 설정에서 포트 번호를 열어둠으로써 문제를 해결하였다. (5시간 걸린,,,)

https://www.youtube.com/watch?v=yCK3easuYm4&t=602s

참조

킹 갓 데이빗 선생님

 

반응형