Computer >> 컴퓨터 >  >> 문제 해결 >> 브라우저

Windows에서 'localhost에서 연결을 거부했습니다' 오류 해결하는 완벽 가이드

로컬 컴퓨터에서 XAMPP나 WAMP 또는 기타 웹 서버를 운영하다가 'localhost에서 연결을 거부했습니다(Localhost refused to connect)' 오류 메시지를 마주했다면, 대부분 설정 문제일 가능성이 높습니다. 이 오류는 localhost가 127.0.0.1 주소와 올바르게 연결되지 않았거나, 해당 파일에 접근할 권한이 부족한 경우에도 발생할 수 있습니다.

localhost 즉 127.0.0.1은 인터넷상의 서버가 아니라 여러분의 컴퓨터에서 실행 중인 웹 서버의 IP 주소입니다. 따라서 인터넷 연결이 없어도 접근이 가능합니다. 앱 테스트, 기존 애플리케이션 수정 등 개발 작업을 온라인 운영 서버가 아닌 로컬 환경에서 진행하면, 실제 서비스 환경에 영향을 주지 않고 버그를 자유롭게 발견하고 수정할 수 있다는 큰 장점이 있습니다. Microsoft Visual Studio나 Visual Studio Code로 Android 앱 등을 개발하면서 프로젝트를 로컬 웹 서버에 연결할 때 이 오류를 겪는 경우도 종종 있습니다.

이 오류는 다양한 원인으로 발생하며, 정확한 원인은 상황마다 다릅니다. 따라서 해결 방법을 살펴보기 전에 먼저 오류의 주요 원인부터 짚어보겠습니다.

오류의 주요 원인

  • localhost가 127.0.0.1과 연결되지 않음 — 컴퓨터의 localhost가 127.0.0.1 주소와 제대로 매핑되지 않은 경우입니다. 이 경우 브라우저에 localhost를 입력하거나 명령 프롬프트에서 ping 명령을 실행해도 로컬 웹 서버에 접속할 수 없습니다.
  • WSL(Windows Subsystem for Linux)에서 웹 서버 실행 — WSL 내 리눅스 배포판에서 웹 서버를 구동하는 경우, Windows의 LxssManager 서비스가 문제의 원인이 되는 때가 있습니다.
  • 80번 포트를 다른 프로그램이 사용 중 — 컴퓨터의 80번 포트를 다른 애플리케이션이 점유하고 있으면 이 오류가 발생할 수 있습니다. 과거 Skype가 80번 포트를 사용했기 때문에, Skype를 켠 상태에서는 WAMP나 XAMPP의 아파치 서버가 정상적으로 구동되지 않는 문제가 자주 있었습니다.
  • 잘못된 포트로 접속 시도 — 웹 서버가 기본 포트인 80번이 아닌 다른 포트로 설정되어 있는데, 브라우저에서 기본값인 localhost(80번 포트)로 접속을 시도하는 경우에도 이 오류가 나타납니다.
  • 권한 부족 — 로컬 웹 서버 내의 특정 파일이나 디렉터리에 현재 사용자 계정이 접근할 권한이 없는 경우에도 오류가 발생할 수 있습니다.

원인을 파악했다면, 이제 각 상황에 맞는 해결 방법을 하나씩 살펴보겠습니다.

1. XAMPP 또는 WAMP에서 아파치 웹 서버 포트 변경하기

가장 일반적인 해결책은 XAMPP나 WAMP 사용 시 아파치 웹 서버의 포트를 변경하는 것입니다. 보통 컴퓨터에서 실행 중인 다른 프로그램이 80번 포트를 선점하여 아파치가 해당 포트를 사용하지 못하게 되는 경우가 많습니다. 이럴 때는 아파치가 실행 중이라 하더라도 해당 포트로 웹 페이지를 불러올 수 없습니다.

XAMPP에서 아파치 포트 변경하기

  1. 먼저 시작 메뉴에서 XAMPP를 실행합니다.
  2. 작업표시줄의 시스템 트레이에서 XAMPP 아이콘을 찾아 더블클릭합니다.
  3. XAMPP 제어판(Control Panel) 창이 열리면 현재 실행 중인 서비스 목록(아파치, MySQL 등)을 확인할 수 있습니다.
  4. 서비스 이름 옆의 'Stop' 버튼을 클릭해 apache 서비스를 중지합니다.
  5. Windows 탐색기를 열고 C:\xampp\apache\conf 폴더로 이동한 뒤, httpd.conf 파일을 찾습니다.
  6. 메모장이나 선호하는 편집기로 파일을 열고 다음 두 줄을 검색합니다.
    Listen 80
    ServerName localhost:80
  7. 해당 줄을 찾았다면 아래와 같이 변경합니다.
    Listen 8080
    ServerName localhost:8080
  8. 파일을 저장합니다. 저장 시 관리자 권한을 요구하는 대화상자가 나타나면 '예(Yes)'를 클릭합니다.
  9. XAMPP 제어판을 다시 열고 아파치 웹 서버를 시작합니다.
  10. 포트 충돌이 원인이었다면 이 과정만으로 오류가 해결됩니다.

WAMP에서 아파치 포트 변경하기

WAMP에서 포트를 변경하려면 먼저 WAMP를 완전히 종료해야 합니다.

  1. 작업표시줄을 우클릭하고 '작업 관리자(Task Manager)'를 선택해 엽니다.
  2. 작업 관리자에서 WAMP 관련 프로세스가 실행 중인지 확인하고, 있다면 '작업 끝내기(End Task)' 버튼을 클릭해 모두 종료합니다.
  3. 바탕화면의 '내 PC'를 더블클릭해 Windows 탐색기를 연 후, C:\wamp\Apache2\conf 폴더로 이동하여 httpd.conf 파일을 메모장 등 편집기로 엽니다.
  4. 파일 안에서 다음 두 줄을 검색합니다.
    Listen 80
    ServerName localhost:80
  5. 찾은 후 아래와 같이 수정합니다.
    Listen 8080
    ServerName localhost:8080
  6. 파일을 저장한 뒤 WAMP를 다시 실행하고 오류가 사라졌는지 확인합니다.

2. 127.0.0.1 주소로 localhost 접속하기

앞서 언급했듯이, 이 오류는 localhost가 127.0.0.1 주소와 제대로 연결되지 않았을 때도 발생합니다.

이 문제를 확인하려면 XAMPP나 WAMP로 웹 서버를 시작한 뒤, 브라우저 주소창에 127.0.0.1을 입력하고 Enter 키를 눌러보세요. 이 주소로 웹 서버에 접속된다면 localhost가 해당 IP를 가리키지 않고 있는 것이므로, 이후에는 localhost/filename 대신 127.0.0.1/filename 형식으로 프로젝트나 파일에 접근하면 됩니다.

3. LxssManager 서비스 재시작하기 (WSL 사용 시)

Node.js 애플리케이션 개발 등을 위해 WSL(Windows Subsystem for Linux)에서 웹 서버를 구동 중인데 이 오류가 발생한다면, 가장 간단한 해결책은 LxssManager 서비스를 재시작하는 것입니다. 아래 순서대로 진행하세요.

  1. 키보드에서 Windows 키 + R을 눌러 '실행(Run)' 대화상자를 엽니다.
  2. 실행 창에 services.msc를 입력하고 Enter 키를 누릅니다.
  3. Windows 서비스 앱이 열리고, 컴퓨터에서 사용 가능한 모든 서비스 목록이 표시됩니다.
  4. 서비스 목록에서 LxssManager를 찾습니다.
  5. 항목을 우클릭한 후 드롭다운 메뉴에서 '다시 시작(Restart)'을 선택합니다. 또는 더블클릭해 '속성(Properties)' 창을 연 뒤 서비스를 중지하고, 다시 '시작(Start)'을 클릭해 재시작할 수도 있습니다.
  6. 완료 후 웹 서버에 다시 접속해 보세요. LxssManager 서비스 문제가 원인이었다면 정상적으로 작동할 것입니다.

4. 포트 번호를 지정하여 localhost 접속하기

웹 서버가 기본 포트인 80번이 아닌 다른 포트에서 실행 중이라면, 포트 번호를 직접 지정해서 접속할 수 있습니다. 일반적으로 사용되는 포트는 80 또는 8080입니다.

브라우저 주소창에 localhost:8080을 입력하면 됩니다. 참고로 80은 브라우저가 온라인·오프라인 웹 서버에 접속할 때 기본적으로 사용하는 포트이므로, 굳이 localhost:80처럼 입력할 필요는 없습니다.

5. application.config 파일 삭제하기 (Visual Studio 사용 시)

Visual Studio에서 ASP.NET 개발을 진행하다가 이 오류를 만났다면 걱정하지 않아도 됩니다. .vs 폴더 안에 있는 application.config 파일을 삭제하면 해결되는 경우가 많습니다. 이 폴더는 숨김 처리되어 있을 수 있으므로, Windows 탐색기에서 숨김 파일이 보이도록 설정되어 있는지 먼저 확인하세요.

  1. 프로젝트 폴더를 연 뒤 .vs 폴더를 엽니다. 이 폴더가 보이지 않는다면 숨김 폴더이므로, Windows 탐색기의 폴더 옵션에서 '숨김 파일 및 폴더 표시'를 활성화해야 합니다.
  2. .vs 폴더 안에서 config 폴더를 엽니다.
  3. config 폴더 안의 application.config 파일을 삭제합니다.
  4. IIS Express를 사용해 ASP.NET 프로젝트를 진행 중이었다면, 이 과정으로 Visual Studio가 localhost에 연결하지 못하는 문제가 해결될 것입니다.

위의 방법들을 차례대로 적용해 보면 대부분의 'localhost에서 연결을 거부했습니다' 오류를 해결할 수 있습니다. 원인에 맞는 해결책을 적용해 쾌적한 로컬 개발 환경을 유지하시기 바랍니다.