WSL2 虚拟主机 IP 地址

Posted

技术标签:

【中文标题】WSL2 虚拟主机 IP 地址【英文标题】:WSL2 vhost IP address 【发布时间】:2021-10-26 14:26:53 【问题描述】:

我已经使用 Ubuntu 20.04 设置了 WSL2,并将其用于 Web 开发。 在 WSL2 上,我安装了 LAMP 堆栈。

我在 WSL2 中使用 apache 设置了一些虚拟主机。到目前为止,它工作正常。但我觉得烦人的是,我必须每天在 Windows 主机文件中设置我为 WSL 获取的新 IP。

我曾尝试在 Ubuntu 中设置静态 IP,但我不太确定它是否正确以及是否有效。我在/etc/netplan 文件夹中创建了一个带有IP 的文件。主要是我关注this advice。 我已经设置了 IP 地址,但是当我执行 sudo netplan apply 时出现错误。

我也尝试过this approach 并编写了一个 PowerShell 脚本。但我不知道这应该如何设置IP。

如果有任何建议,我会很高兴并感激不尽。

【问题讨论】:

【参考方案1】:

真的需要您的用例的 IP 地址吗?

WSL2 有一个名为 localhostForwarding 的功能,默认情况下应启用该功能。这应该允许您在 Windows 中使用 localhost 直接访问在 WSL2 实例中运行的服务。

在 WSL 中没有运行任何其他内容的情况下,从 shell 尝试以下操作:

python3 -m http.server 8088

看看你是否可以通过 Windows 浏览器访问它localhost:8088

如果这不起作用,那么您可能遇到了 WSL 错误,其中 localhostForwarding 在休眠时中断,或者在 Windows 中启用快速启动时(这是默认设置)。如果是这种情况,请尝试在 PowerShell 中运行以下命令:

wsl --shutdown

然后重新启动并重试。

然后在您的C:\Windows\System32\drivers\etc\hosts 中,将您的虚拟主机名设置为127.0.0.1::1

【讨论】:

非常感谢。那已经解决了。我只需要在 windows /etc/hosts 文件中添加 '::1'。 @GunnarPolte 谢谢 - 好点 aoubt ::1。我会将其编辑为答案。很高兴听到它让您朝着正确的方向前进。 如果 localhost 转发由于某种原因停止工作,请参阅我为解决方案编写的这篇文章:abdus.dev/posts/fixing-wsl2-localhost-access-issue

以上是关于WSL2 虚拟主机 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章

WSL2 jupyter notebook 在windows主机打开

给windows宿主机和wsl2的ubuntu-20.04分配固定IP,使能相互ping通

WSL2 X-Server 网络问题

WSL2 使用“localhost”访问 Windows 服务

关于 DISPLAY 环境变量的问题

clion + wsl2 摆脱虚拟机!