VMware와 Nginx를 사용하여 Ubuntu VM에 웹사이트를 호스팅하고 로드되지 않을 때 문제 해결 방법 (단계별 가이드)

발행: (2026년 2월 8일 오후 03:08 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

기술 스택

  • 호스트 OS: Windows 10/11
  • 게스트 VM: Ubuntu Linux
  • 가상화: VMware Workstation
  • 웹 서버: Nginx
  • 원격 접속: SSH (PowerShell에서)

Nginx를 설치한 이유

Nginx를 설치한 목적은:

  • Linux 서버에서 웹 서비스를 호스팅해 보기
  • **Windows (호스트)**와 Ubuntu VM (게스트) 간 네트워킹 테스트
  • 방화벽, 포트, VM 네트워킹 등 실제 현장 문제 해결 연습
  • AWS EC2와 DevOps 작업에 바로 적용 가능한 스킬 습득

설정 개요

  • 호스트 OS: Windows
  • VM: VMware Workstation에 설치된 Ubuntu
  • 접근 방법: PowerShell에서 SSH
  • 목표: Windows 브라우저에서 VM의 웹 페이지에 접근

단계별 진행

1️⃣ PowerShell에서 SSH로 Ubuntu VM에 연결

ssh alok@

2️⃣ Ubuntu에 Nginx 설치 및 시작

sudo apt update
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

Nginx가 실행 중인지 확인:

sudo systemctl status nginx

VM 내부에서 로컬 테스트:

curl http://localhost

✅ Nginx가 VM 내부에서 정상 작동합니다.

3️⃣ VM의 IP 주소 확인

hostname -I

예시 출력: 192.168.80.129

4️⃣ Windows 브라우저에서 접근 시도

Chrome에서 http://192.168.80.129 열기.

문제: 페이지가 계속 로드됨 → ERR_CONNECTION_TIMED_OUT

5️⃣ Ubuntu 방화벽(UFW) 확인

sudo ufw status

출력 내용:

  • 포트 22 (SSH) 허용
  • 포트 3000, 5000, 8000 허용
  • 포트 80 허용되지 않음

해결: HTTP(포트 80) 허용

sudo ufw allow 80/tcp
sudo ufw reload

브라우저는 여전히 타임아웃 → 방화벽만이 원인이 아니었습니다.

6️⃣ Nginx 자체가 정상인지 확인

sudo systemctl status nginx
curl http://localhost

결과: Nginx가 실행 중이며 curl이 성공합니다.
결론: 애플리케이션 레이어는 정상이며, 문제는 Windows ↔ VM 간 네트워킹에 있습니다.

7️⃣ VMware 네트워크 모드 확인

  • VMware → VM SettingsNetwork Adapter
  • 모드: NAT (이미 선택됨)

NAT 설정 자체는 문제 없었지만, NAT 서비스가 손상됐을 가능성이 있습니다.

8️⃣ VMware NAT 네트워킹(호스트 측) 복구

Windows에서:

  1. Win + R을 눌러 services.msc 실행.
  2. 다음 서비스를 재시작:
    • VMware NAT Service
    • VMware DHCP Service

이 작업으로 Windows와 VM 사이의 네트워크 경로가 복구되었습니다.

9️⃣ Windows에서 다시 테스트

Chrome에서 http://192.168.80.129 열기.

✅ Nginx 페이지가 정상적으로 로드 – 문제 해결! 🎉

근본 원인 요약

레이어수정 전 상태수정 후 상태
애플리케이션 (Nginx)✅ 정상 작동✅ 정상 작동
로컬 접근 (curl)✅ 성공✅ 성공
Ubuntu 방화벽 (UFW)❌ 포트 80 차단✅ 포트 80 허용
VMware NAT 서비스 (호스트)❌ 손상✅ 재시작
브라우저 접근❌ 타임아웃✅ 성공

사용한 트러블슈팅 명령

Ubuntu VM에서

sudo apt update
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
curl http://localhost
hostname -I
sudo ufw status
sudo ufw allow 80/tcp
sudo ufw reload

Windows에서

ssh alok@
ping 

Windows UI: services.mscVMware NAT ServiceVMware DHCP Service 재시작.

이번 경험을 통해 배운 점 (실전 스킬)

  • Linux에서 웹 서버가 어떻게 동작하는지
  • 포트와 방화벽이 접근성에 미치는 영향
  • VM 네트워킹(NAT)의 작동 원리
  • 문제를 레이어별로 격리하는 방법: 앱 → 방화벽 → 네트워크 → 호스트 서비스

이 체계적인 접근법은 다음 상황에 적용할 수 있습니다:

  • 로드되지 않는 EC2 인스턴스
  • 접근이 안 되는 Docker 컨테이너
  • 프로덕션 환경에서 서비스 타임아웃 발생 상황
0 조회
Back to Blog

관련 글

더 보기 »

sunpeak은 MCP 앱에 전념한다

개요: MCP Apps는 이제 ChatGPT, Claude, Goose 및 VS Code에서 실행됩니다. Claude는 1월 26일에 MCP App 지원을 발표했으며, ChatGPT는 2월 4일에 이를 따랐습니다. 2월 현재…