WSL2로 우분투를 사용하면 참 좋은데
한가지 ㅋ빡치는 일이 있습니다.
가정 등 유동 IP를 사용하는 PC에서는
WSL2를 시작할 때 마다 우분투의
/etc/resolv.conf 파일의 nameserver에
변경된 IP가 자동으로 할당되어
인터넷을 사용할 수 없게 합니다.
쉽게 말해 인터넷을 사용하려면 DNS서버를
설정해야 하는데 WSL2를 돌리는 윈도우시스템에
할당된 유동IP로 변경해버리니까 인터넷이 안됩니다.
예를 들어 우분투에서 www.naver.com 에
접속하려면 DNS 서버에 가서 실제 주소를
가져와야 하는데 스스로의 컴퓨터에서
네이버를 찾고 있는 엄한짓을 하고 있는 것입니다.
(WSL2 우분투 -> 자신의 PC에서 nameserver를 찾는다)
네트워크는 연결되어 있지만 인터넷 주소를
해석할 수 없기 때문에 이래서는 sudo apt-get
이런 명령어들을 하나도 쓸 수가 없어집니다.
인터넷에 검색해보면 이 문제로 많은 사람들이
딥빡침을 성토 하는데 WSL2용 우분투 디스트로
업데이트의 문제인지 개선할 계획이 있는 건지...
잘 모르겠네요. 써본적은 없지만 WSL1에서는
제대로 작동했던 것 같습니다.
일단 해결책은 있습니다.
echo "[network]" | sudo tee /etc/wsl.conf
echo "generateResolvConf = false" | sudo tee -a /etc/wsl.conf
그 다음에 WSL을 셧다운 합니다.
wsl --shutdown
다시 시작하면 /etc/resolv.conf 가 삭제되어 있을겁니다.
resolv.conf 파일을 다시 만들어 줍니다.
삭제할 수 없도록 immutable 속성을 줍니다.
DNS 서버는 마음에 드는 것을 사용합니다.
8.8.8.8 은 구글 퍼블릭 DNS
1.1.1.1 은 클라우드플레어 DNS 입니다.
아마 국내 PC는 가정용은 기본 셋팅이
kornet으로 되어 있을 겁니다. (윈도우 설치시)
kornet으로 해도 됩니다. 해외 검색을
많이하면 1.1.1.1 이 더 나을 수도 있습니다.
DNS 속도 테스트 같은 프로그램도 있으니까
자신의 환경에 적합한 DNS를 선택합니다.
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
sudo chattr +i /etc/resolv.conf
인터넷이 제대로 작동하는지 업데이트를 해봅니다.
아래는 칼리 리눅스에서 수정한 화면인데
우분투나 칼리나 똑같습니다.
sudo apt-get update
우분투 리눅스에서 다운로드 속도에 영향을
미치는게 DNS서버와 미러사이트 인데
국내에서는 다음 카카오서버를 많이 씁니다.
미러 서버 변경은 아래 게시물을 참고합니다.
WSL2 우분투 apt 다운로드 속도 향상시키기 - Windows Terminal 등 윈도우에서 리눅스 설정
DNS 서버란? DNS 설정 | 웹서핑 스피드 향상 | 인터넷 보안 | 유튜브 속도 향상