Mengatasi WSL2 yang Tidak Bisa Konek Internet

Dipublikasikan pada 12 September 2021

Salah satu issue pada WSL2 yang sudah lama diketahui namun belum diperbaiki oleh Microsoft hingga saat tulisan ini dipublikasikan adalah terkadang distro kita —sebagai contoh milik saya Ubuntu-20.04— tidak dapat mengakses internet.

Contoh Kasus

Kita baru menyadari distro yang terpasang di WSL2 tidak bisa terhubung ke internet ketika kita mencoba melakukan salah satu dari hal berikut:

  1. Ketika update repo Ubuntu dengan perintah sudo apt update hasil yang keluar justru “Temporary failure resolving ‘archive.ubuntu.com'”
  2. Upgrade package yang terinstall di Ubuntu kita dengan perintah sudo apt dist-upgrade tapi tidak berhasil
  3. Ketika ping ke google (atau situs lainnya) dengan perintah ping google hasil yang keluar malah “Temporary failure in name resolution”
  4. Update/install packge lewat npm, pip atau package manager lainnya dengan perintah npm install atau pip install nama-package tapi package yang dimaksud tidak dapat terinstall.

Solusinya

Jika sudah demikian, diketahui dari salah satu komentar di halaman issue repository github microsoft/WSL, trik agar Ubuntu dapat mengakses internet kembali caranya adalah sebagai berikut:

  1. Jalankan distro kita dengan cara membukannya lewat Terminal

  2. Pada folder /etc buat file bernama wsl.conf, kali ini saya menggunakan vim sebagai teks editor

    cd /etc
    sudo vim wsl.conf
    
  3. Tambahkan baris berikut pada file wsl.conf lalu simpan

    [network]
    generateResolvConf=false
    
  4. Tutup terminal distro kita, dan matikan melalui perintah pada PowerShell

    wsl --terminate Ubuntu-20.04
    
  5. Jalankan kembali distro kita dengan cara membuka Terminal

  6. Pada Terminal hapus file symbolic link resolv.conf yang ada di folder /etc dengan perintah

    cd /etc  
    sudo rm resolv.conf
    
  7. Buat file resolve.conf yang baru di folder /etc

    sudo vim resolv.conf
    
  8. Tambahkan baris berikut pada file resolv.conf yang telah kita buat, lalu simpan. Sebagai catatan, kita bisa mengganti 8.8.8.8 sesuai dengan name server yang kita inginkan

    nameserver 8.8.8.8
    
  9. Tutup Terminal dan matikan distro dengan menjalankan perintah di PowerShell sebagai berikut

    wsl --terminate Ubuntu-20.04
    
  10. Jalankan kembali distro kita dengan cara membuka Terminal.

  11. Untuk mengecek apakah distro kita sudah bisa konek ke internet, kita bisa mencoba ping ke google atau domain lain.

    ping google.com
    

Terminal menampilkan file  resolv.conf

Mengedit file resolv.conf menggunakan vim

Penyebab

Menurut JohnnyQuest1983 dalam komentarnya, penyebab tidak bisa koneksi ke internet adalah karena WSL tidak bisa me-resolve domain name. Pun ketika kita mengedit resolv.conf secara langsung masalah akan kembali muncul ketika distro tersebut kita restart. Karena resolve.conf yang asli akan digenerate ulang dengan template milik WSL.

Demikian sedikit tips untuk mengatasi distro WSL2 yang tidak dapat terhubung ke internet. Semoga membantu.

Kategori: Coding
Tag: WSL

About The Author

Miftah Afina

Hello! 👋

I'm Afin, a Google Apps Script freelancer that ready to automate your workflows.

0 komentar