Search
Duplicate

VMware에서 client-webserv curl 접속

키워드
VMware
CURL
NAT
Host-Connection
httpd
네트워크
방화벽

알고 싶은 점

client VM에서 webserv VM의 웹 서버 접속
시나리오
VMware에 client VM과 webserv VM 존재
webserv에서 httpd를 통해서 웹 서버 열고 client에서 접속
각 VM은 NAT 설정

실습

1. NAT 설정

NAT 클릭해도 되지만 Custom에서 VMnet8이 더 확실함. 간혹 버그가 있다함

2. webserv VM

아파치 서버 다운
yum -y install httpd
Bash
복사
아파치 서버 실행 후 활성화 확인
systemctl restart httpd systemctl status httpd | grep -i active
Bash
복사
방화벽 해제

3. client VM

webserv VM 웹 서버 접속
curl <webserv VM IP>
Bash
복사

어려웠던 점

1. NAT 설정인데 왜 호스트에서 VM 접속이 가능?

문제사항

webserv VM에서 뿌리고 있는 웹을 호스트(노트북)에서 웹 브라우저에 webserv VM IP주소를 검색하면 접속이 되는 상황이 이해불가
NAT 설정이 되어 있는데 외부에서 어떻게 webserv의 IP를 알고 webserv의 IP(사설IP)로 접속했는데 접속이 가능한건지 이해불가

정리사항

VMware는 Host-Connection을 위한 x.x.x.1이 항상 있음
→ 호스트에서 VM으로 단방향으로 접근 가능
호스트가 웹 접속/ping을 보낼때 패킷이 보내지는 경로와 VM이 노트북 방향으로 ping을 보낼때 패킷이 보내지는 경로가 다름
호스트 → VM은 x.x.x.1
VM → 호스트는 x.x.x.2 (NAT, Router, Gateway)
→ 따라서, 호스트가 VM이 NAT 설정이 되어 있음에도 내부로 들어올 수 있는 이유는 VMware에서 호스트를 위해 만들어둔 Host-Connection 덕분이다(x.x.x.1)

2. 방화벽 해제

systemctl disable --now firewalld
Python
복사
방화벽을 해제하지 않아 80포트가 열려있지 않아서 통신이 되지 않음
명령어를 통해서 방화벽을 해제해줘야함

성과

VM에서 말하는 NAT설정이 호스트와 어떤 식으로 연결이 되어 있고, VM과 호스트 사이의 네트워크 구성을 그림으로 표현할 수 있고 알 수 있음
웹 서버와 클라이언트가 통신이 되지 않을때의 문제점에 대해서 포트문제, 방화벽 문제, 네트워크 설정 문제, 서비스 정상 적용 문제에 대해서 생각해보고 해결할 수 있음
웹 서버를 구성하고 외부에서 접속하게 할 수 있음