我在 WSL2 内的容器内运行了一个 MongoDB 实例。
当我尝试在浏览器中执行请求时localhost:27017
即使它显示错误,它仍然可以工作,因为我尝试使用 HTTP 协议访问数据库。
但是当我尝试使用主机名 localhost 和端口 27017 从 Compass 访问我的数据库时,我在 30000 毫秒后超时,并且无法访问它。
有人知道为什么吗?
我只能使用 WSL2 IP 地址连接 mongoDB 实例。
您可以通过在 WSL 中运行以下命令来获取它:
ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | cut -d/ -f1
或者 Windows 主机上的 powershell 中的这个:
[Regex]::Match((wsl -- ip addr show eth0), 'inet (?<IP>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\/').Groups["IP"].Value
坏消息:每次 WSL2 重新启动时,此 IP 都会发生变化。有一个go-wsl2-主机 https://github.com/shayne/go-wsl2-host为该 IP 添加主机并保持更新。但我从来没有用过它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)