我在 Windows 10 上使用 WSL2。
我的开发堆栈在主机操作系统上使用本地网络服务器(localwp 或 wamp)。
我使用 WSL2 作为主终端(SSH、Git、SASS、自动化工具等)。
我需要的是一种使用服务器名称而不是随机 IP 地址从 WSL2 系统连接到我的主机服务 (MySql) 的方法。
Windows 主机已经可以使用“localhost”连接到 WSL2 服务。有没有办法以另一种方式做到这一点?
最佳答案
好吧,你的标题和你的问题主体似乎不太一致。
问题标题说“使用本地主机”,但随后在正文中说“使用服务器名称”。
通过 WSL2 的名称“localhost”访问 Windows 10 服务?让我们说“不”。我可以想到如何使它工作的可能性,但这会很复杂。
但我认为第二个确实是您要寻找的,因此我可以想到在 WSL2 中通过主机名访问 Windows 主机服务的几个选项:
{hostname}.local
访问 Windows 主机。 (其中 {hostname}
是 Windows 主机的名称(字面意思是,在 bash 中, ping $(hostname).local
,因为分配的 WSL2 主机名是主机 Windows 10 计算机的名称)。这对我有用。虽然我不记得必须做任何特殊的事情来启用它,this Super User answer 似乎表明你必须手动打开它。/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/