WSL 2 使用 Docker 桥接模式网络访问 HTTPS 超时的解决方法

WSL 2 使用 Docker 桥接模式网络访问 HTTPS 超时的解决方法

💡 原文中文,约2200字,阅读约需6分钟。
📝

内容提要

本文介绍了在WSL 2中使用Docker时解决HTTPS访问超时问题的方法,通过将WSL 2虚拟网络的MTU设置为1400,确保Docker网络正常运行。

🎯

关键要点

  • 在WSL 2中使用Docker的桥接模式访问HTTPS时出现超时问题。

  • HTTP访问正常,但HTTPS访问明显变慢并可能超时。

  • 切换到Host模式后,HTTPS访问恢复正常。

  • 问题原因是Path MTU与防火墙流量检查不兼容。

  • 解决方法是将WSL 2虚拟网络的MTU设置为1400。

  • 需要修改Docker配置文件/etc/docker/daemon.json,添加'mtu': 1400。

  • 在Windows下关闭WSL 2以应用配置更改。

  • 使用管理员身份的Powershell检查网卡名称并设置MTU。

  • 重新运行WSL 2虚拟机并测试Docker网络,问题得到解决。

延伸问答

在WSL 2中使用Docker时,HTTPS访问超时的原因是什么?

原因是Path MTU与防火墙流量检查不兼容。

如何解决WSL 2中Docker的HTTPS访问超时问题?

将WSL 2虚拟网络的MTU设置为1400。

在WSL 2中修改Docker配置文件的步骤是什么?

使用root用户修改/etc/docker/daemon.json文件,添加'mtu': 1400。

为什么切换到Host模式后HTTPS访问恢复正常?

Host模式不受Path MTU和防火墙流量检查的影响,因此访问恢复正常。

如何在Windows中检查WSL 2的网卡名称?

使用管理员身份的Powershell运行命令Get-NetAdapter | Where-Object { $_ .Name -like '*WSL*' }。

设置WSL 2网卡MTU的命令是什么?

使用命令netsh interface ipv4 set subinterface 'vEthernet (WSL (Hyper-V firewall))' mtu=1400 store=persistent。

🏷️

标签

➡️

继续阅读