在 VirtualBox 中運行 Ubuntu 等客體系統時,常需透過 NAT 端口映射(Port Forwarding)讓主機(Host)存取客體服務。但部分 Windows 主機會出現端口映射失敗,日誌顯示 can't create datagram socket、failed to redirect TCP/UDP 等錯誤。經排查,非端口衝突或被佔用,而是 Windows 網路堆疊(Winsock、TCP/IP)損壞導致。本文提供完整修復指令。

00:00:01.125577 NAT: set redirect UDP host 0.0.0.0:6000 => guest 10.0.2.15:6000
00:00:01.125748 NAT: can't create datagram socket
00:00:01.125763 NAT: failed to redirect UDP 0.0.0.0:6000 => 10.0.2.15:6000
00:00:01.125774 NAT: set redirect TCP host 0.0.0.0:6555 => guest 10.0.2.15:5555
00:00:01.125897 NAT: failed to redirect TCP 0.0.0.0:6555 => 10.0.2.15:5555
netstat -ano 確認)。以 系統管理員身分 開啟「命令提示字元」或 PowerShell,依序執行以下指令:
netsh winsock reset all
netsh int 6to4 reset all
netsh int ipv4 reset all
netsh int ipv6 reset all
netsh int httpstunnel reset all
netsh int isatap reset all
netsh int portproxy reset all
netsh int tcp reset all
netsh int teredo reset all
執行完成後,**必須重新開機** 讓變更生效。
此修復不僅解決 VirtualBox 端口映射失敗,也適用於任何因 Windows 網路堆疊損壞導致的端口映射、Socket 建立失敗、VPN 無法連線、DNS 解析異常等問題。

提示:上述指令來源於 Windows 內建網路修復工具的進階功能。若問題持續,可嘗試「網路重設」(設定 → 網路與網際網路 → 狀態 → 網路重設)。
完成修復並重開機後,VirtualBox 端口映射應能正常運作。若仍有問題,請檢查防火牆規則或 VirtualBox 網路模式設定。