itfixIT 오류 해결 가이드
윈도우

WSL2 인터넷 DNS 안 됨 resolv.conf 5단계 실전 해결 가이드

WSL2 안에서만 apt·pip·npm이 Temporary failure in name resolution으로 실패할 때 IP·DNS 구분 진단, wsl 재시작, DNS 터널링·미러 모드 설정, resolv.conf 직접 지정 순서로 해결합니다.

WSL2 인터넷 DNS 안 됨 원인과 핵심 요약

WSL2 안에서만 인터넷이 안 되는 경우는 대부분 연결 자체가 아니라 주소를 찾는 DNS가 실패하는 것입니다. 윈도우의 VPN이나 네트워크 변경을 WSL이 따라가지 못하거나, 자동으로 만들어지는 /etc/resolv.conf가 쓸 수 없는 DNS 서버를 가리키는 것이 원인이며, IP와 도메인을 나눠 시험하면 1분 안에 어느 쪽인지 가려집니다.

회사 PC에서 회사 VPN을 쓰는 환경이라면, 공용 DNS(1.1.1.1 등)로 바꾸면 인터넷은 되지만 사내 주소를 찾지 못할 수 있습니다. 아래 4번에서는 회사 DNS 주소를 쓰는 방법을 함께 안내합니다.


증상별 바로가기

지금 상황 바로 갈 곳
DNS 문제인지 연결 문제인지부터 확인하고 싶다 해결 방법 1
어제까진 됐는데 갑자기 안 된다 해결 방법 2
회사 VPN을 켰을 때만 안 된다 해결 방법 3
재부팅하거나 WSL을 다시 켤 때마다 다시 안 된다 해결 방법 4
IP로도 연결이 안 된다 해결 방법 5

해결 방법 1: IP와 도메인을 나눠 진단

  1. WSL 터미널(예: Ubuntu)을 엽니다.

  2. 도메인 없이 IP로 연결되는지 확인합니다.

    ping -c 3 8.8.8.8
  3. 이어서 도메인으로 확인합니다.

    ping -c 3 google.com
  4. 결과를 아래처럼 해석합니다.

    • IP는 응답하고 도메인에서 Temporary failure in name resolution이 나온다 → DNS 문제입니다. 2·3·4번으로 갑니다.
    • IP도 응답이 없다 → 연결 자체의 문제입니다. 2번을 해보고 안 되면 5번으로 갑니다.
  5. 현재 WSL이 쓰는 DNS 서버를 확인합니다.

    cat /etc/resolv.conf
  6. nameserver 줄의 주소를 기억해 둡니다. DNS 터널링이 켜져 있으면 보통 10.255.255.254가 표시됩니다.

일부 회사망은 ping 자체를 막습니다. ping이 모두 실패해도 curl -I https://www.google.com이 응답한다면 연결은 정상입니다.


해결 방법 2: WSL 재시작과 업데이트

  1. WSL 창을 모두 닫고 PowerShell을 엽니다.

  2. WSL을 완전히 종료합니다. 실행 중인 모든 배포판이 함께 종료됩니다.

    wsl --shutdown
  3. 8초 정도 기다린 뒤 WSL을 다시 열어 1번 진단을 반복합니다. WSL이 완전히 멈춘 뒤 다시 켜져야 설정이 새로 적용됩니다.

  4. 해결되지 않으면 WSL을 최신 버전으로 업데이트합니다.

    wsl --update
  5. 버전을 확인합니다. 이 명령이 인식되지 않는다면 윈도우에 기본 포함된 오래된 WSL이므로 업데이트가 먼저 필요합니다.

    wsl --version

wsl --shutdown은 실행 중인 모든 리눅스 프로그램을 즉시 종료합니다. 돌리던 서버나 빌드 작업이 있다면 먼저 저장하고 멈추세요.


해결 방법 3: DNS 터널링과 미러 네트워크 모드

VPN을 켤 때만 안 된다면 가장 효과가 큰 방법입니다. 윈도우 11 22H2 이상에서 쓸 수 있습니다.

  1. 시작 메뉴에서 WSL Settings(WSL 설정)를 검색해 실행할 수 있다면, 네트워킹 항목에서 아래 값을 바꾸는 것이 가장 쉽습니다. 마이크로소프트도 설정 파일 직접 수정보다 이 방법을 권장합니다.

  2. 설정 앱이 없다면 파일 탐색기 주소창에 %UserProfile%을 입력해 사용자 폴더로 이동합니다.

  3. .wslconfig 파일을 메모장으로 엽니다. 없으면 새로 만듭니다. 메모장으로 저장할 때 파일 형식을 모든 파일로 바꿔야 .txt가 붙지 않습니다.

  4. 아래 내용을 넣습니다. 이미 [wsl2] 줄이 있다면 그 아래에 세 줄만 추가합니다.

    [wsl2]
    dnsTunneling=true
    networkingMode=mirrored
    autoProxy=true
  5. 저장한 뒤 PowerShell에서 wsl --shutdown을 실행하고 8초 기다렸다가 WSL을 다시 엽니다.

  6. 1번 진단을 다시 해봅니다.

dnsTunneling과 autoProxy는 최근 WSL에서 기본으로 켜져 있지만, 이전에 다른 값으로 바꿔 두었을 수 있어 명시해 두는 편이 확실합니다. networkingMode=mirrored는 WSL이 윈도우의 네트워크 구성을 그대로 따라가게 해 VPN 환경에서 특히 효과적입니다.


해결 방법 4: resolv.conf 직접 지정

자동으로 만들어지는 DNS 설정을 끄고 직접 지정하는 방법입니다. 윈도우 10에서도 쓸 수 있습니다.

  1. WSL 터미널에서 설정 파일을 엽니다.

    sudo nano /etc/wsl.conf
  2. 파일 끝에 아래 두 줄을 추가합니다. 이미 [boot] 같은 다른 항목이 있다면 지우지 말고 그 아래에 추가만 합니다.

    [network]
    generateResolvConf = false
  3. Ctrl + O, Enter로 저장하고 Ctrl + X로 나옵니다.

  4. PowerShell에서 wsl --shutdown을 실행하고 8초 뒤 WSL을 다시 엽니다.

  5. 기존 resolv.conf를 지우고 DNS 서버를 직접 적습니다.

    sudo rm -f /etc/resolv.conf
  6. 이어서 DNS 서버를 지정합니다.

    echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
  7. 회사 VPN 환경이라면 1.1.1.1 대신 회사 DNS를 넣어야 사내 주소도 찾습니다. 윈도우 PowerShell에서 ipconfig /all을 실행해 VPN 어댑터의 DNS 서버 주소를 확인하고 그 값을 6번에 넣습니다.

  8. 1번 진단을 다시 해봅니다.

/etc/wsl.conf를 통째로 새로 쓰면 systemd 같은 기존 설정이 사라집니다. 반드시 편집기로 열어 줄을 추가만 하세요. 되돌리려면 추가한 두 줄을 지우고 wsl --shutdown을 실행하면 됩니다.


해결 방법 5: 방화벽과 VPN 클라이언트 점검

  1. 서드파티 백신의 방화벽이 WSL 가상 네트워크를 막는 경우가 있습니다. 잠시 중지해 확인하고, 원인으로 확인되면 WSL 관련 예외를 등록한 뒤 다시 켭니다.
  2. 회사 VPN 클라이언트 중에는 VPN 외의 모든 네트워크 경로를 차단하도록 설정된 것이 있습니다. 이 경우 3번의 미러 모드로 해결되기도 하지만, 회사 정책으로 막혀 있다면 사용자가 풀 수 없습니다.
  3. 3번과 4번을 해도 VPN 연결 중에만 안 된다면, IT 담당자에게 “WSL2에서 VPN 연결 시 이름 확인 실패”라고 증상과 1번 진단 결과를 함께 전달하세요.
  4. 윈도우 자체에서도 인터넷이 안 된다면 WSL이 아니라 PC 네트워크 문제입니다. DNS 서버가 응답하지 않습니다 글부터 확인하세요.

회사 보안 정책으로 차단된 경로를 우회하려고 VPN 클라이언트 설정을 임의로 바꾸지 마세요. 보안 규정 위반이 될 수 있습니다.


문제 해결이 안 될 경우 추가 점검 사항

  • 회사 프록시 환경: 회사가 프록시를 쓰면 DNS는 되는데 apt나 pip만 실패할 수 있습니다. autoProxy=true가 윈도우의 프록시 설정을 WSL에 전달해 줍니다.
  • Docker Desktop과 함께 쓸 때: Docker Desktop이 WSL 네트워크를 함께 쓰므로, Docker를 종료한 상태에서 비교해 보세요.
  • 배포판 새로 설치 비교: 다른 배포판을 설치해 같은 증상인지 확인하면 배포판 내부 설정 문제인지 가릴 수 있습니다.
  • 윈도우 DNS 캐시: 윈도우 쪽 DNS가 꼬였다면 PowerShell에서 ipconfig /flushdns를 실행해 보세요.
  • 같은 주제의 다른 글: Git 원격 접속까지 안 된다면 Git Permission denied (publickey) 글도 함께 확인하세요.

자주 묻는 질문

설정을 바꿨다가 원래대로 되돌리려면 어떻게 하나요?

윈도우 사용자 폴더의 .wslconfig에서 추가한 줄을 지우고, 리눅스 쪽 /etc/wsl.conf에서 generateResolvConf 줄을 지운 뒤 PowerShell에서 wsl --shutdown을 실행하면 기본 동작으로 돌아갑니다.

회사 VPN을 켰을 때만 안 되는 이유는 무엇인가요?

VPN이 윈도우의 네트워크 경로와 DNS 서버를 바꾸는데, 기본 NAT 모드의 WSL이 그 변경을 제대로 따라가지 못하는 경우가 많습니다. 미러 네트워크 모드와 DNS 터널링이 이 문제를 줄이기 위해 만들어진 기능입니다.

윈도우 10에서도 아래 설정을 쓸 수 있나요?

DNS 터널링과 미러 네트워크 모드는 윈도우 11 22H2 이상에서만 지원됩니다. 윈도우 10이라면 resolv.conf를 직접 지정하는 방법을 쓰세요.

이 문서는 2026년 10월 9일 기준으로 작성되었습니다. 운영체제 업데이트에 따라 메뉴 명칭과 위치가 달라질 수 있으며, 시스템 설정을 변경하기 전에는 중요한 데이터를 먼저 백업하시기 바랍니다.