我想在我的笔记本电脑上设置 Windows 和 WSL2 的 Ubuntu 实例之间的端口转发。我的目的是,当在 Ubuntu 内部监听时,某些端口可以通过localhost
Windows 机器访问。重点是能够通过浏览器访问这些工具localhost
,而不需要wsl hostname -I
。
我的应用程序配置为localhost
在某些情况下将用户重定向到本地运行时,这显然是一个缺陷,但目前就是这样。
我试过跑步
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=8080 connectaddress=$($(wsl hostname -I).Trim());
然后用以下命令打开该端口的防火墙
New-NetFirewallRule -DisplayName "WSL2 Port Bridge" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8080
但这并没有创建我想要的链接。我仍然无法通过浏览器访问 WSL 中在端口 8080 上运行的应用程序localhost:8080
答案1
解决了我的问题。我在 Windows 上运行了另一个进程,该进程正在监听端口 8080。显然,这种设置不会阻止 WSL 打开 Windows 上已经打开的端口,它只是默默地无法访问。
一旦我终止了其他进程,它就可以工作了。