WSL mirrored 網路模式設定指南
WSL 2.6.0 網路模式升級設定指南
Categories:
版本需求
當前版本狀態:
- 最新穩定版:2.5.9(存在網路設定缺陷)
- 推薦版本:2.6.0 預覽版(支援完整 mirrored 模式)
模式對比分析
| 特性 | bridge 模式(已廢棄) | mirrored 模式(推薦) |
|---|---|---|
| 協議堆疊架構 | 雙協議堆疊 | 共享協議堆疊 |
| IP 位址分配 | 獨立 IP(Windows+WSL) | 共享主機 IP |
| 連接埠資源 | 獨立使用 | 共享連接埠(需避免衝突) |
| 網路效能 | 相對較重 | 輕量高效 |
| 設定複雜度 | 簡單 | 需深度設定防火牆原則 |
標準設定步驟
1. 網路模式設定
透過 WSL Settings 應用程式設定基礎模式:
- 開啟設定應用程式
- 選擇「Network」分頁
- 設定網路模式為「Mirrored」
- 套用設定並重新啟動 WSL

2. 防火牆原則設定
需透過 PowerShell 執行完整原則設定:
# 定義 WSL 虛擬機 GUID
$wslGuid = '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}'
# 設定防火牆原則(依序執行)
Set-NetFirewallHyperVVMSetting -Name $wslGuid -Enabled True
Set-NetFirewallHyperVVMSetting -Name $wslGuid -DefaultInboundAction Allow
Set-NetFirewallHyperVVMSetting -Name $wslGuid -DefaultOutboundAction Allow
Set-NetFirewallHyperVVMSetting -Name $wslGuid -LoopbackEnabled True
Set-NetFirewallHyperVVMSetting -Name $wslGuid -AllowHostPolicyMerge True
# 驗證設定結果
Get-NetFirewallHyperVVMSetting -Name $wslGuid
3. 連接埠對應驗證
# 範例:檢查 80 連接埠佔用情況
Get-NetTCPConnection -LocalPort 80
常見問題處理
問題 1:無法建立外部連線
- 檢查步驟:
Get-NetFirewallHyperVVMSetting輸出中的所有欄位應為 True/Allow - 解決方案:依序重新執行防火牆原則設定
問題 2:連接埠衝突
- 驗證方法:使用
netstat -ano檢視連接埠佔用 - 處理建議:優先釋放 Windows 端佔用連接埠,或修改 WSL 服務監聽連接埠
驗證方法
- 啟動 WSL 服務(如 Nginx/Apache)
- 從 Windows 主機存取
http://localhost:<port> - 從區域網路裝置存取
http://<host-ip>:<port>