windows - 从 WSL2 内部访问在 Windows 中运行的本地主机?

标签 windows aem windows-subsystem-for-linux portforwarding wsl-2

我正在运行本地 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/

相关文章:

git - 安装 zsh 后无法通过 ssh 提交到 github 远程

c# - 寻找发音正确性

c++ - 使用 non_blocking() boost 1.47 编译错误

user-interface - 如何增加触摸用户界面,adobe cq5 中的对话框大小?

aem - 如何在 JAVA 中删除 CQ 节点的属性

git - 如何在 WSL(Windows 上的 Ubuntu)上使用 Git 凭据存储?

linux - 无法将 docker 镜像推/拉到经过证书身份验证的私有(private)注册表? (仅适用于 WSL,远程错误 : tls: alert(116))

linux - 如何在 Windows 上启用 Docker 远程 API

windows - 在 Win32 C API 中执行 `EnumWindows` 查找窗口时如何避免使用全局变量?

aem - 如何在AEM中使用第三方JAR?