[개발 환경] WSL GitHub clone, 네트워크 실패 시 nameserver 변경 방법

2023. 8. 31. 23:02·개발/개발 환경
반응형

WSL을 새로 설치하다가 git clone을 받았는데 실패하는 경우가 종종 있습니다. 이런 경우 원인이 DNS와 연관된 경우가 많은데 이런 경우에 어떻게 해결하는지 알아보도록 하겠습니다.

 

 

WSL GitHub clone, 네트워크 실패 시 nameserver 변경 방법

 

wsl nameserver 변경

 

 

 어떤 에러가 발생하는지

 

새롭게 설치하거나 네트워크에 문제가 발생하였을 때 git clone을 하면 문제가 발생할 수 있습니다.

Network is unreachable 나 Could not resolve host와

그럴 때 네트워크 문제인지 확인하는 방법이 ping입니다.

ping github.com

아래와 같은 정상적인 응답이 오지 않는다면 DNS 문제임을 의심해보아야 합니다.

ping 정상

 

 왜 발생하는지

 

일반적으로 WSL을 사용하면 IP 주소를 Dynamic 하게 할당합니다. 따라서 WSL을 종료하고 다시 켤 때마다 해당 WSL의 주소는 변경됩니다.

또한 WSL에서는 DNS를 활용하기 위한 nameserver 변수를 자동으로 만듭니다. 이는 /etc/resolv.conf로 확인할 수 있습니다.

growing-dev@DESKTOP-BV8O4K4:~$ cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.30.112.1

 

172.30.112.1 이 할당된 주소이며 이는 윈도 터미널 상에서 ipconfig로 확인하였을 때 나오는 값과 일치하는 것을 알 수 있습니다.

WSL IPv4 주소

 

 

 해결 방법

 

문제는 이렇게 자동으로 IP가 생성되고 nameserver가 할당되는데, 원치 않게 제대로 할당되지 않을 수 있습니다.

따라서 이 문제를 해결하려면 강제로 DNS 주소를 할당해주어야 합니다.

아래 순서를 따라서 설정하면 됩니다.

 

1. /etc/wsl.conf 파일에 아래 내용을 추가하여 nameserver 자동 생성을 막습니다.

[network]
generateResolvConf = false

 

2. /etc/resolv.conf 파일에 새로운 nameserver를 할당해 줍니다. 아래 내용은 구글의 DNS를 사용하는 것입니다.

nameserver 8.8.8.8
nameserver 8.8.4.4

 

3. WSL을 종료 후 다시 접속하여 /etc/resolv.conf 가 변경한 값으로 그대로 잘 남아 있는지 확인합니다.

/etc/resolv.conf

 

4. nslookup google.com 명령어로 nameserver를 확인합니다.

nameserver 확인

 

 결론

 

오늘은 WSL에서 Git clone과 같은 동작을 할 때 제대로 동작하지 않는 경우 해결법에 대해서 알아보았습니다. 네트워크가 문제가 되는 경우는 여러 가지 이유가 있는데 항상 원인이 무엇인지 찾기 어려울 때가 많습니다.

자주 발생하는 문제 중 DNS와 관련된 문제를 알아보았고 해결방법을 알아보았으니 즐겁고 쾌적한 개발을 하시길 바랍니다.

'개발 > 개발 환경' 카테고리의 다른 글

[Docker] 도커를 활용하여 Jenkins 설치 해보기 in WSL  (0) 2024.07.08
[개발 환경] make, Makefile 기본 구조, 작성 방법  (0) 2023.12.01
[개발 환경] WSL 문제 발생 시 추가로 설치하는 방법  (0) 2023.08.31
[컴파일러] LLVM, Clang 설치 방법, 명령어 및 버전 변경 방법  (0) 2023.08.28
[Linux] Ubuntu apt 명령어 종류, 예제 및 사용 방법  (0) 2023.08.28
'개발/개발 환경' 카테고리의 다른 글
  • [Docker] 도커를 활용하여 Jenkins 설치 해보기 in WSL
  • [개발 환경] make, Makefile 기본 구조, 작성 방법
  • [개발 환경] WSL 문제 발생 시 추가로 설치하는 방법
  • [컴파일러] LLVM, Clang 설치 방법, 명령어 및 버전 변경 방법
growing-dev
growing-dev
S/W 개발 관련 내용들과 취미나 육아, 맛집 등 관심 있는 내용을 공유하는 블로그입니다.
    반응형
  • growing-dev
    성장하는 개발자 블로그
    growing-dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 개발
        • 개발 공통
        • 개발 환경
        • Git
        • 자료구조, 알고리즘
        • C, C++
        • Python
        • DevOps
        • CMake
      • 공부
        • 영어
        • 경제
      • 취미, 육아
        • 육아
      • 생활정보
  • 블로그 메뉴

    • 홈
  • 링크

    • growing-dev GitHub
  • 공지사항

    • [블로그 시작] 성장하는 개발자 스토리입니다.
  • 인기 글

  • 태그

    Clang
    티스토리챌린지
    VS Code
    OPIC
    git
    C++
    키즈카페
    필스너
    WSL
    생산성
    TDD
    dfs
    오픽
    CMake
    하이볼
    앨리웨이
    소프티어
    Python
    프로그래머스
    오블완
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
growing-dev
[개발 환경] WSL GitHub clone, 네트워크 실패 시 nameserver 변경 방법
상단으로

티스토리툴바