各位老鐵、全端工程師、被 Docker 網路搞瘋的極客們大家好,我是站長。
現在是 2026 年,Windows Subsystem for Linux 2 (WSL2) 早就已經是開發標配。但是,你是不是還在忍受那個「半殘」的網路架構?
每次在 WSL2 跑 npm run dev,都要手動去查虛擬 IP;公司 VPN 一開,WSL2 直接斷網;想讓區網同事連你的 API,還得寫 PowerShell 腳本搞 Port Forwarding(連接埠轉發)。
這一切的痛苦,都源自於 WSL2 傳統的 NAT (網路位址轉譯) 架構。
但在 Windows 11 24H2,微軟終於把 「Mirrored Mode (鏡像網路模式)」 扶正了!這是自 WSL 問世以來最大的網路底層革命。今天站長要教你如何拋棄舊時代的 workaround,用正規方式讓 Linux 與 Windows 共用同一個 IP,實現「真正的合體」。
更新時間:2026/01/26 | 驗證環境:Windows 11 24H2 (Build 26100.x) / WSL 版本 2.4.x
⚡ 站長快讀:重點與數據 (Key Takeaways)
- 核心痛點: 舊版 WSL2 使用 NAT,導致 IP 變動、無法支援 IPv6、且被 VPN 軟體阻擋。
- 解決方案: 啟用 Mirrored Mode。這會移除虛擬網卡,讓 Linux 介面直接「鏡像」宿主機的實體網路介面。
- 關鍵優勢:
- 共用 IP:
localhost(127.0.0.1) 在 Windows 和 Linux 之間完全互通。 - IPv6 支援: 終於不用再關閉 IPv6 來避開 bug。
- VPN 穿透: 企業級 VPN (如 Cisco, GlobalProtect) 不再導致 WSL 斷網。
- 共用 IP:
- 硬性門檻: Windows 11 24H2 或更高版本。
1. [背景知識] 為什麼 NAT 模式是萬惡之源?
在 2024 年以前,WSL2 就像一台躲在路由器(Hyper-V 虛擬交換器)後面的獨立電腦。
- 情境 A: 你在 WSL 跑 Web Server (Port 3000)。Windows 瀏覽器打
localhost:3000有時會通,但有時得打172.x.x.x:3000。 - 情境 B: 你想從手機連電腦測試網頁。你得用
netsh interface portproxy指令把 Port 打通,重開機後 IP 變了,又要重設一次。
Mirrored Mode 的出現,直接把這層虛擬路由器「拆了」。WSL2 看到的網路環境,就是 Windows 看到的環境。
2. [實戰教學] 編輯 .wslconfig 解鎖隱藏功能
這個功能預設是關閉的(為了相容舊版行為)。我們需要手動編輯全域設定檔。
Step 1: 建立或編輯設定檔
此檔案位於你的使用者根目錄。請開啟 PowerShell 或檔案總管:
# Open .wslconfig with Notepad
# 註釋:開啟位於使用者目錄下的全域設定檔,若無此檔案請建立
notepad $env:UserProfile\.wslconfig
Step 2: 寫入關鍵參數
請將以下內容完整複製並貼上。這些參數是站長經過多次踩坑後總結的「黃金組合」:
# .wslconfig Content
[wsl2]
# 啟用鏡像網路模式 networkingMode=mirrored # 讓 WSL 的 DNS 查詢透過 Windows 解析 (解決公司內網解析問題) dnsTunneling=true # 讓 Windows 防火牆規則自動套用到 WSL (安全性提升) firewall=true # 自動同步 Windows 的 HTTP Proxy 設定 (企業用戶救星) autoProxy=true # (選用) 釋放記憶體更積極 memory=16GB
站長解釋:
dnsTunneling=true: 必開。不然在複雜的 VPN 環境下,WSL 會解不出網域名稱。firewall=true: 這代表你在 Windows Defender 防火牆設定的規則,會同步保護 Linux,不用再搞iptables。
Step 3: 重啟 WSL 讓設定生效
設定檔存檔後,必須完全關閉 WSL 虛擬機才能生效。
# Shutdown WSL completely
# 註釋:強制關閉所有 WSL 實體
wsl --shutdown
# 註釋:等待 5 秒後,重新進入 WSL
wsl
3. [驗證與進階] 真的成功了嗎?
進入 WSL (Ubuntu/Debian) 後,輸入 ifconfig 或 ip addr。
- 舊版 (NAT): 你會看到
eth0的 IP 是172.17.x.x這種虛擬段。 - 新版 (Mirrored): 你會看到與 Windows 一模一樣的實體 IP (例如你的 Wi-Fi IP
192.168.1.100)。
災情預警與排除
- Docker 用戶注意:
如果你是用 Docker Desktop,它預設有自己的網路層。建議在 Docker Desktop 設定中,開啟 “Use WSL 2 networking” (如果有的話) 或直接在 WSL 內部安裝 Docker Engine (推薦,效能更好)。 - 防毒軟體擋路:
部分第三方的防毒軟體 (Kaspersky, McAfee) 可能會把鏡像流量視為攻擊。如果遇到連線被拒,請暫時移除第三方防毒,回歸 Microsoft Defender (它對 24H2 支援最好)。
4. 常見問題 (FAQ)
- Q: 開了 Mirrored Mode,我的 Hyper-V 虛擬機也會變嗎?
- A: 不會。這設定只針對 WSL2。標準的 Hyper-V VM 還是走虛擬交換器。
- Q: 為什麼
systemd啟動的服務,我在 Windows 還是連不到?- A: 請檢查該服務綁定的 IP。如果它綁定
127.0.0.1,現在 Windows 也可以直接連127.0.0.1了!以前反而是要綁定0.0.0.0Windows 才連得到,現在反而簡單了。
- A: 請檢查該服務綁定的 IP。如果它綁定
- Q: 這能解決 WSL 吃光記憶體的問題嗎?
- A: 網路模式跟記憶體無關。但你可以在
.wslconfig中加入autoMemoryReclaim=gradual(24H2 新功能),讓它閒置時自動把 RAM 還給 Windows。
- A: 網路模式跟記憶體無關。但你可以在
5. 結論
微軟在 2026 年終於把 WSL2 的最後一塊拼圖——「網路」給補齊了。Mirrored Mode 讓 Linux 子系統真正融入了主機,不再是個總是需要「打洞」的孤島。
如果你的開發環境還卡在「寫腳本轉發 Port」或「開 VPN 就斷網」的石器時代,請立刻升級 Windows 11 24H2 並套用這篇教學。這單我推,絕對是有感升級。