Berawal dari kasus yang pernah saya alami sendiri yaitu remote akses ke komputer windows, tapi beberapa tools jaringan yang biasanya saya gunakan ada di gnu/linux semua sehingga saya harus install WSL di komputer windows tersebut.
Remote yang cukup normal digunakan untuk windows adalah remote desktop, tapi rasanya kurang nyaman karena tidak pleksibel dan bersifat mirroring. Maka pada saat itu saya berpikir :
“Apakah bisa saya remote WSL Ubuntu di windows dari luar komputer ?”
Dan pada akhirnya saya menemukan jawaban tersebut. YA BISA DONG !
Asalakan WSL yang digunakan adalah WSL 2, karena saya sendiri belum sempat mencoba pada WSL 1.
Contents
1. Install SSH di WSL Ubuntu
Hal pertama yang perlu dilakukan adalah menginstall openssh-server di WSL yang kita gunakan, case disini saya menggunakan ubuntu. Kalian bisa menyesuaikan dengan distro yang kalian gunakan.
sudo apt-get install openssh-serverSetelah itu ubah bagian konfigurasi ssh agar dapat dibaca di semua segment IP dan tentukan port yang digunakan, disini saya akan menggunakan Port 2222.
sudo nano /etc/ssh/sshd_configCari part berikut lalu hapus tanda # (uncomment) dan sessuaikan bagian berikut :
Port 2222
ListenAddress 0.0.0.0Jika sudah maka jalankan dan pastikan bahwa ssh berjalan pada saat startup
sudo systemctl enable ssh
sudo systemctl start ssh2. Konfigurasi Netsh di Windows Command Prompt
Selanjutnya kita akan melakukan routing dari network host windows ke WSL menggunakan netsh. Caranya buka aplikasi Command Prompt sebagai Administrator lalu masukan perintah berikut :
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=172.18.208.10 connectport=2222Keterangan
- listenaddress : alamat IP yang mengakses host ( 0.0.0.0 artinya semua IP )
- listenport : port yang akan digunakan oleh host windows
- connectaddress : IP yang digunakan oleh WSL (Pastikan check IP dari WSL)
- connectport : port ssh yang digunakan oleh WSL
Setelah itu kamu bisa check routing yang sudah dibuat dengan perintah berikut :
netsh interface portproxy show v4tov4Perintah Optional*
#Menghapus konfigurasi
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=2222
#Reset semua konfigurasi
netsh interface portproxy reset3. Pengujian
Untuk menguji keberhasilan konfigurasi yang sudah kita buat cukup mudah, kamu bisa coba remote ssh ke IP Address Host milik Windows (contoh 192.168.0.1) dengan menambahkan port 2222, contoh seperti berikut :
ssh [email protected] -P 22224. Kekurangan & Kelebihan
Meskipun metode ini cukup menarik, ada beberapa kelebihan dan kekurangan yang saya temui pada saat melakukan implementasi diantaranya sebagai berikut :
Kelebihan
- WSL yang kita remote akan terhubung ke jaringan private milik host windows, jadi kita bisa akses semua perangkat pada jaringan tersebut.
- Metode netsh ini bisa di implementasikan ke aplikasi lain selain WSL
Kekurangan
- Terminal WSL harus selalu dalam keadaan running, jika aplikasi ditutup maka WSL tidak dapat diakses
- Jika komputer restart maka kemungkinan IP Address dari WSL akan berubah dan kita perlu melakukan routing kembali
- Sampai artikel ini di publish, saya belum menemukan cara efektif untuk membuat program autorun routing netsh jika WSL memiliki IP Address yang berebeda.
5. Penutup
Pembahasan pada artikel ini membuktikan bahwa kita dapat melakukan routing jaringan ke aplikasi berbasis container seperti WSL menggunakan perintah Command Prompt yaitu netsh. Hanya saja perlu diperhatikan bahwa pointing yang dilakukan harus menggunakan port yang berbeda dengan port default yang berjalan pada Windows sebagai host, jika tidak maka proses routing tidak akan berhasil.
Referensi
- https://www.hanselman.com/blog/how-to-ssh-into-wsl2-on-windows-10-from-an-external-machine
- https://superuser.com/questions/1582234/make-ip-address-of-wsl2-static (Optional Reference)



