Menggunakan Dev Proxy dengan WSL

Sekilas
Tujuan: Menggunakan Dev Proxy dengan Subsistem Windows untuk Linux (WSL)
Waktu: 15 menit
Prasyarat:Menyiapkan Proksi Dev, WSL terinstal

Saat mengembangkan aplikasi di WSL (Subsistem Windows untuk Linux), Anda memiliki dua opsi untuk menggunakan Dev Proxy: menjalankannya di host Windows Anda atau di dalam WSL. Kedua pendekatan memiliki keuntungan tergantung pada alur kerja pengembangan Anda.

Pendekatan paling sederhana adalah menginstal dan menjalankan Dev Proxy di Windows. Dengan Proksi Otomatis WSL dan mode jaringan tercermin, WSL menggunakan proksi sistem Windows, sehingga aplikasi yang berjalan di WSL memiliki lalu lintas yang disadap oleh Dev Proxy tanpa mengonfigurasi proksi di WSL.

Mengonfigurasi jaringan WSL

Dev Proxy mendaftarkan dirinya sebagai proksi sistem Windows pada alamat localhost (127.0.0.1:8000 secara default). Agar aplikasi di WSL menggunakan proksi ini, aktifkan pengaturan berikut di bagian [wsl2] pada file konfigurasi WSL yang terletak di %UserProfile%\.wslconfig pada Windows:

[wsl2]
networkingMode=mirrored
autoProxy=true
Setting Description
networkingMode=mirrored Mencerminkan antarmuka jaringan Windows ke Linux, yang memungkinkan aplikasi di WSL terhubung ke server yang berjalan di Windows, seperti Dev Proxy, menggunakan 127.0.0.1. Memerlukan Windows 11 versi 22H2 atau yang lebih baru. Nilai defaultnya adalah nat.
autoProxy=true Membuat WSL menggunakan pengaturan proksi HTTP Windows, sehingga proksi yang dikonfigurasi pada Windows secara otomatis diatur dalam WSL. Tersedia di Windows 11. Diaktifkan secara default.

Setelah Anda mengubah .wslconfig file, mulai ulang WSL agar perubahan diterapkan:

wsl --shutdown

Nota

Dalam mode jaringan NAT default, aplikasi di WSL tidak dapat terhubung ke Dev Proxy di Windows menggunakan 127.0.0.1. Jika Anda tidak dapat menggunakan mode jaringan cermin, jalankan Dev Proxy di dalam WSL sebagai gantinya. Untuk informasi selengkapnya, lihat Opsi 2: Proksi Dev di dalam WSL.

Untuk informasi selengkapnya, lihat Mengakses aplikasi jaringan dengan WSL dan Konfigurasi pengaturan lanjutan di WSL.

Menyiapkan Dev Proxy di Windows

  1. Instal Dev Proxy di Windows menggunakan winget atau penginstalan manual.

  2. Mulai Proksi Dev:

    devproxy
    
  3. Percayai sertifikat saat diminta.

Menggunakan Dev Proxy dari WSL

Ketika Dev Proxy berjalan sebagai proksi sistem pada Windows (perilaku default) dan Anda mengonfigurasi jaringan WSL, aplikasi di WSL secara otomatis merutekan lalu lintas mereka melaluinya.

Mulai aplikasi Anda di WSL seperti biasa. Dev Proxy mencegat permintaan HTTPS yang dibuat oleh aplikasi yang menghormati pengaturan proksi.

Penting

Mulai ulang WSL setelah memulai atau menghentikan Proksi Dev

WSL membaca pengaturan proksi Windows saat dimulai. Jika Anda memulai Dev Proxy setelah WSL berjalan, atau jika Anda menghentikan dan memulai ulang Dev Proxy, Anda perlu memulai ulang WSL agar perubahan diterapkan:

wsl --shutdown

Kemudian mulai sesi WSL baru.

Percayai sertifikat di WSL

Agar Dev Proxy mencegat lalu lintas HTTPS, aplikasi di WSL perlu mempercayai sertifikat Dev Proxy. Anda dapat menyalin sertifikat dari Windows atau mengekspornya menggunakan DEV Proxy API.

Opsi A: Salin sertifikat dari Windows

  1. Di WSL, salin sertifikat dari Windows:

    cp "/mnt/c/Users/<your-username>/AppData/Local/Programs/Dev Proxy/rootCert.pfx" ~/
    
  2. Ekspor dan instal sertifikat:

    # Export the certificate
    openssl pkcs12 -in ~/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:""
    # Install the certificate
    sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/
    # Update certificates
    sudo update-ca-certificates
    

Opsi B: Gunakan API Proksi Dev

DEV Proxy API memerlukan bearer token. Saat Dev Proxy berjalan di Windows, dapatkan token dengan menjalankan perintah api token di terminal Windows:

devproxy api token

Kemudian, di WSL, unduh dan instal sertifikat. Ganti <token> dengan token yang Anda ambil:

# Download the certificate from Dev Proxy API
curl -H "Authorization: Bearer <token>" -o dev-proxy-ca.crt "http://127.0.0.1:8897/proxy/rootCertificate?format=crt"
# Install the certificate
sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/
# Update certificates
sudo update-ca-certificates

Nota

Beberapa aplikasi mungkin memerlukan konfigurasi tambahan untuk mempercayai penyimpanan sertifikat sistem. Untuk aplikasi Node.js, Anda mungkin perlu mengatur NODE_TLS_REJECT_UNAUTHORIZED=0 untuk tujuan pengembangan. Menonaktifkan validasi sertifikat tidak disarankan untuk kode produksi.

Opsi 2: Proksi Dev di dalam WSL

Jika Anda lebih suka menjalankan Dev Proxy sepenuhnya dalam WSL, instal menggunakan metode penginstalan Linux dan konfigurasikan proksi secara manual.

Menginstal Dev Proxy di WSL

Skrip penyiapan mengharuskan unzip untuk mengekstrak Dev Proxy. Distribusi WSL baru, seperti Ubuntu, tidak menyertakannya secara default. Instalasi unzip:

sudo apt update
sudo apt install unzip

Instal Dev Proxy menggunakan skrip penyiapan:

bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"

Mengonfigurasi proksi secara manual

Karena WSL tidak memiliki lingkungan desktop grafis, Dev Proxy tidak dapat secara otomatis mendaftar sebagai proksi sistem. Konfigurasikan aplikasi Anda untuk menggunakan proksi secara manual.

  1. Buat file konfigurasi Proksi Dev dengan asSystemProxy disetel ke false:

    {
      "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
      "asSystemProxy": false,
      "plugins": [
        {
          "name": "RetryAfterPlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
        },
        {
          "name": "GenericRandomErrorPlugin",
          "enabled": true,
          "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
          "configSection": "genericRandomErrorPlugin"
        }
      ],
      "urlsToWatch": [
        "https://jsonplaceholder.typicode.com/*"
      ],
      "genericRandomErrorPlugin": {
        "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/genericrandomerrorplugin.schema.json",
        "errorsFile": "devproxy-errors.json",
        "rate": 50
      },
      "logLevel": "information"
    }
    
  2. Mulai Proksi Dev:

    devproxy
    
  3. Percayai sertifikat:

    # Export Dev Proxy root certificate
    openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:""
    # Install the certificate
    sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/
    # Update certificates
    sudo update-ca-certificates
    
  4. Konfigurasikan aplikasi Anda untuk menggunakan proksi. Atur HTTPS_PROXY variabel lingkungan:

    export HTTPS_PROXY=http://127.0.0.1:8000
    

    Atau tentukan saat menjalankan aplikasi Anda:

    HTTPS_PROXY=http://127.0.0.1:8000 node app.js
    

Petunjuk / Saran

Untuk informasi selengkapnya tentang mengonfigurasi proksi untuk aplikasi Node.js, lihat Menggunakan Dev Proxy dengan aplikasi Node.js.

Perbandingan pendekatan

Fitur Host Windows (Opsi 1) Di dalam WSL (Opsi 2)
Kompleksitas penyiapan Simple Menengah
Requirements Windows 11 22H2 atau yang lebih baru, mode jaringan cermin WSL None
Manajemen sertifikat Penyalinan satu kali dari Windows Ekspor manual
Konfigurasi proksi Otomatis (Proksi Otomatis WSL) Panduan (HTTPS_PROXY)
Perlu menghidupkan ulang WSL Iya, saat mengaktifkan atau mematikan proksi Tidak.
Bekerja dengan semua aplikasi WSL Yes Bergantung pada dukungan proksi aplikasi

Untuk sebagian besar skenario, menjalankan Dev Proxy di Windows (Opsi 1) adalah pendekatan yang direkomendasikan karena kesederhanaan dan konfigurasi proksi otomatisnya.

Troubleshooting

Permintaan tidak dicegat saat menggunakan host Windows

Jika Dev Proxy di Windows tidak mencegat permintaan dari WSL:

  1. Verifikasi bahwa networkingMode=mirrored dan autoProxy=true diatur di bagian [wsl2] dari file .wslconfig Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi jaringan WSL.

  2. Mulai ulang WSL untuk menyegarkan pengaturan proksi:

    wsl --shutdown
    
  3. Verifikasi Proksi Dev berjalan dan terdaftar sebagai proksi sistem.

  4. Periksa apakah sertifikat Proksi Dev dipercaya di WSL.

unzip: perintah tidak ditemukan

Jika skrip penyiapan gagal dengan kesalahan unzip: command not found, instal unzip dan jalankan skrip penyiapan lagi:

sudo apt update
sudo apt install unzip

Kesalahan sertifikat

Jika Anda melihat kesalahan sertifikat:

  1. Pastikan Anda menginstal sertifikat di WSL dengan mengikuti langkah-langkah dalam Mempercayai sertifikat di WSL.
  2. Untuk aplikasi Node.js, Anda mungkin perlu mengonfigurasi aplikasi untuk menggunakan agen proksi. Lihat Menggunakan Dev Proxy dengan aplikasi Node.js.

Masalah jaringan WSL

WSL 2 menggunakan adaptor jaringan virtual. Jika Anda mengalami masalah jaringan:

  1. Pastikan Firewall Windows Anda mengizinkan Dev Proxy.
  2. Coba gunakan localhost alih-alih 127.0.0.1 saat mengonfigurasi alamat proksi.