最近在玩 iptables 指令時,我原本打算使用多個 WSL Distro 來模擬多台主機的環境。不過實驗過程中,我發現了一個有趣的現象:在任何一個 Distro 中進行的網路設定,居然會同步到所有其他的 Distro!
經過一番搜尋後,我找到了答案。原來這是 WSL 的設計特性:[WSL 2] Multi WSL2 distributions use the same network namespace。
簡單來說,所有的 WSL Distro 其實都運行在同一個虛擬機中,並且共用同一個 network namespace。這就解釋了為什麼網路設定會互相影響。
雖然社群中有許多使用者都在敲碗 WSL 官方能將這個設計改為讓每個 Distro 擁有獨立的 network namespace,但從六年前有人提出這個問題到現在,官方似乎都沒有要修改的打算。
既然如此,我們只能記住這個特性,以後使用 WSL 時就不會再踩到這個坑了!