我已经对WSL-2进行了一段时间的修改,不太清楚主机和WSL-2 dist之间的流量是如何路由的。
在某些源中,WSL-2使用的所有端口似乎都会自动提供给主机。例如在本教程由Microsoft编写中。类似地,我成功地托管了一个木星实例,它可以通过localhost:8888直接在我的主机上使用。
但是,当尝试其他服务时,例如ssh (也在非标准端口上尝试),端口不会通过本地主机自动可用,我必须使用分配给WSL发行版(来自wsl hostname -I的IP地址)。
为了使服务通过本地主机可用,我找到了这个端口转发脚本,它起作用了。但我想知道为什么需要它。
为什么某些服务需要端口转发,而不是全部?
发布于 2020-10-31 19:48:15
我的困惑来自于WSL-2的防火墙问题。
我发现:
localhost:<port>访问。netstat interface portproxy或其他端口转发工具提供WSL-2端口。防火墙仅仅列出了端口,就不允许访问WSL端口。我必须在防火墙规则中具体选择iphlpsv服务(IP服务),以允许流量通过WSL实例。
发布于 2021-08-21 11:28:53
当您运行WSL-2时,一台像虚拟机器一样的机器运行在您的窗口设备上.Windows将创建一个本地网络,与您的局域网相同,并将WLS-2连接到此网络.
5: eth0:<广播、多播、UP、LOWER_UP> mtu 1500 qdisc状态UP组默认qlen 1000 inet172.27.5.124/20 brd 172.27.15.255作用域全局eth0
Ethernet adapter vEthernet (WSL):
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::1532:a8ea:6b34:8df2%73
IPv4 Address. . . . . . . . . . . : 172.27.0.1
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . :WSL-2和Windows设备在同一个网络上,而WSL-2不连接到您的局域网.
我的解决方案(在Windows上使用端口转发)
在Windows上使用Admin打开终端,并运行脚本:
netsh interface portproxy set v4tov4 listenport=8888 listenaddress=0.0.0.0 connectport=8888 connectaddress=$(wsl hostname -I)发布于 2022-01-17 18:19:38
以下步骤帮助我在Windows上本地连接到我的端口:
sudo apt install net-toolstype ".\script.ps1" | powershell.exe -c -。这是用来运行文件的。右击该文件以“使用powershell运行”将无法工作。netsh interface portproxy show v4tov4https://stackoverflow.com/questions/64513964
复制相似问题