windows-10 - WSL2 使用 "localhost"访问 Windows 服务

标签 windows-10 local wsl-2

我在 Windows 10 上使用 WSL2。
我的开发堆栈在主机操作系统上使用本地网络服务器(localwp 或 wamp)。
我使用 WSL2 作为主终端(SSH、Git、SASS、自动化工具等)。
我需要的是一种使用服务器名称而不是随机 IP 地址从 WSL2 系统连接到我的主机服务 (MySql) 的方法。
Windows 主机已经可以使用“localhost”连接到 WSL2 服务。有没有办法以另一种方式做到这一点?

最佳答案

好吧,你的标题和你的问题主体似乎不太一致。
问题标题说“使用本地主机”,但随后在正文中说“使用服务器名称”。
通过 WSL2 的名称“localhost”访问 Windows 10 服务?让我们说“不”。我可以想到如何使它工作的可能性,但这会很复杂。
但我认为第二个确实是您要寻找的,因此我可以想到在 WSL2 中通过主机名访问 Windows 主机服务的几个选项:

  • 首先,希望是最简单的,WSL2 支持 mDNS(WSL1 不支持),因此您应该能够以 {hostname}.local 访问 Windows 主机。 (其中 {hostname} 是 Windows 主机的名称(字面意思是,在 bash 中, ping $(hostname).local ,因为分配的 WSL2 主机名是主机 Windows 10 计算机的名称)。这对我有用。虽然我不记得必须做任何特殊的事情来启用它,this Super User answer 似乎表明你必须手动打开它。
  • 第二个选项是将您的 Windows 主机 IP 添加到 /etc/hosts .如果您的 Windows IP 是静态的,那么您可以手动将其添加到 /etc/hosts并完成。如果它是动态的,那么您可能需要编写脚本。您可以通过以下方式从 WSL2 内部检索它:powershell.exe "(Test-Connection -ComputerName (hostname) -Count 1).IPV4Address.IPAddressToString" (和其他方法)然后使用类似 sed 的东西改变 /etc/hosts .
  • 关于windows-10 - WSL2 使用 "localhost"访问 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65625762/

    相关文章:

    qt - 构建/部署项目测试时出错(套件 : Desktop Qt 5. 7.1 MSVC2015_64bit)执行步骤 "qmake"时

    cygwin - 在 Windows 10 Python 3 上安装 Fasttext 时出错

    jquery - 使用本地/ session 存储保存 .addClass()

    c++ - 在带有 mingw64 的 Visual Studio Code 中找不到 #include <iostream>

    windows-store-apps - 如何将 Windows Store 8.1 应用程序移植到 Windows 10?

    Java:本地搜索 TSP 错误

    python |脚本执行后如何使局部变量成为全局变量

    wsl2 上的 docker 非常慢

    ubuntu - 在 WSL2 (Ubuntu 20.04) 中运行的 Nginx 不会将 HTML 页面提供给位于端口 80 之外的另一个端口上的 Windows 10 主机

    mongodb - 无法连接到 WSL2 内 docker 内的 mongo