[WSL] could not resolve host 에러 대처법

식빵·2024년 7월 19일
0

Window

목록 보기
2/2

혹시나 해서 말씀드리는 건데, 자신의 컴퓨터에 dns 를 조작하거나,
우회하는 프로그램(ex: 시크릿dns) 같은게 활성화 되어있으면
먼저 해당 프로그램을 비활성화해서 다시 테스트해보시 바랍니다.
그래도 안되면 아래 방식을 따르면 됩니다.



어느날 집이 아닌 카페에 와서 wsl2 환경의 ubuntu 에서 git clone 명령어를
쓰니까 갑자기 could not resolve host: github.com 라는 에러 문구가 나왔습니다.

뭔가 여러 이유 때문에 안되는 거 같은데, 일일이 찾아볼 시간도 없어서
그냥 빠른 해결법을 찾아보기로 했고 검색해보니 아래 방법을 통해 가능했습니다.

출처: https://github.com/orgs/community/discussions/31567

This solution helped me. Here is the link
Inside WSL2, create or append file: /etc/wsl.conf

Put the following lines in the file in order to ensure the your DNS changes do not get blown away

sudo tee /etc/wsl.conf << EOF
[network]
generateResolvConf = false
EOF
In a cmd window (!!), run wsl --shutdown

Start WSL2

Run the following inside WSL2 (line with search is optional)

sudo rm -rf /etc/resolv.conf
sudo tee /etc/resolv.conf << EOF
search yourbase.domain.local
nameserver 8.8.8.8
nameserver 1.1.1.1
EOF

위 글에서는 다음과 같이 3가지 작업을 하라고 합니다.

  1. /etc/wsl.confgenerateResolvConf = false 를 추가합니다.
    이건 wsl 이 기동될 때 /etc/resolv.conf 파일을 생성하고
    적절하게 내용을 채우는 자동 작업을 방지하는 겁니다.

  2. wsl --shutdown 을 통해서 wsl 위에 기동되는 모든 리눅스 종료합니다.
    이렇게 해야 /etc/wsl.conf 내용이 적용됩니다. 단! 8초 이상 기다려야 합니다.
    공식문서 에서도 그렇게 하라고 합니다.

  3. 이후 커스텀한 /etc/resolve.conf 파일을 생성(또는 수정)합니다.
    위에서는 뭐 여러가지 넣는데, 저는 그냥 아래 2줄만 추가했습니다.

  • nameserver 8.8.8.8
  • nameserver 8.8.4.4

제가 적용한 내용은 아래와 같고, 이렇게 하니 잘되는 걸 확인했습니다.

  • generateResolveConf = false 설정 추가.
  • systemd 는 원래 있던 설정입니다.




참고: wsl.conf 파일에 대해 더 알고 싶다면?

https://learn.microsoft.com/ko-kr/windows/wsl/wsl-config#wslconf
필요하시면 참고하세요.

profile
백엔드를 계속 배우고 있는 개발자입니다 😊

0개의 댓글