跳到主要内容

3 篇博文 含有标签「WSL2」

WSL2 is buggy but useful!

查看所有标签

Docker端口转发RST排查:Hyper-V端口冲突

· 阅读需 6 分钟
RibomBalt
CTF enthusiastist, GeoPhysics PhD, Amateur coder

TL;DR;

  • 在 Windows Docker Desktop 中,通过端口转发(如 -p 50022:80)访问容器内 HTTP 服务时,客户端收到大量 RST 包,连接被拒绝。
  • 使用 Wireshark 抓包后发现 RST 由宿主机 Windows 发出,且发生在三次握手后立即。
  • 诊断脚本 netsh int ipv4 show excludedportrange protocol=tcp 发现映射的端口(50022、50023)落在 Hyper‑V 预留的排除范围(50000–50059)内。
  • 根本原因是 Windows 的 WinNAT / Hyper‑V 预留了该端口段,Docker 的端口转发进程(docker-proxy)无法成功监听,导致系统返回 RST。
  • 解决方案:更换端口至不在排除列表中的端口(如 8080)即可解决。也可通过重启 WinNAT 后立即映射抢占,但不推荐。

WSL2 CUDA禁用共享内存

· 阅读需 4 分钟
RibomBalt
CTF enthusiastist, GeoPhysics PhD, Amateur coder

TL;DR;

  • 对于双显卡设备,当N卡显存不够用时,会使用集显提供的共享显存,会显著降低性能。
  • 可以通过torch.cuda.set_per_process_memory_fraction(1.0, 0)在torch模块中禁用共享显存。
  • 禁用共享显存会导致专用显存报错时直接退出而不是保持运行,出现共享显存问题首先应该调参减小模型显存占用。