我正在运行本地 AEM 服务器 在我的 Windows 机器上。服务器在 上运行本地主机:4502 .我正在使用在 WSL2 中运行的 Ubuntu 发行版进行开发。我想访问在我的 中运行在 Windows 机器上的 localhost:4502 WSL2 Ubuntu .
有没有办法做到这一点,或者不可能?
最佳答案
我也在寻找一些解决方案来做到这一点,但目前,没有这样的选项可用。查看此 GitHub 问题:
https://github.com/microsoft/WSL/issues/4619
一种解决方案可以是这样的:
如果您拥有 windows(host) 的 IP,那么它将完成这项工作,但唯一的问题是 IP 每次都会更改。但是,WSL2 将您的 Windows(主机)IP 存储在 /etc/resolv.conf
中。文件。所以我们可以修改我们的 etc/hosts
来图winhost
动态访问IP。
在 ~/.bashrc
的末尾添加以下几行文件。这将 grep IP 并修改 etc/hosts
当您启动 WSL 时。
export winhost=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
if [ ! -n "$(grep -P "[[:space:]]winhost" /etc/hosts)" ]; then
printf "%s\t%s\n" "$winhost" "winhost" | sudo tee -a "/etc/hosts"
fi
然后运行以下命令以重新加载更改。$ source ~/.bashrc
现在您可以使用 winhost
而不是 localhost
在 WSL2(客户端)中访问运行 windows(主机)的服务器。在您的情况下,它将是 winhost:4502
但这适用于任何其他用例以及访问 Postgres/MySQL 服务器 在 windows 上运行等注意:始终记住在 Windows 上配置防火墙以允许这些端口,以便 WSL2 可以访问,否则您的连接可能会被防火墙阻止。
关于windows - 从 WSL2 内部访问在 Windows 中运行的本地主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64763147/