首页 > 解决方案 > WSL-2:自动转发哪些端口?

问题描述

我一直在修补 WSL-2 一段时间,并不完全了解主机和 WSL-2 分配之间的流量路由方式。

在某些来源中,似乎 WSL-2 使用的所有端口都自动对主机可用。例如在Microsoft 的本教程中。同样,我设法托管了一个 Jupyter 实例,该实例可通过localhost:8888.

但是,在尝试其他服务时,例如 ssh(也在非标准端口上尝试过),该端口不会自动通过 localhost 变得可用,我必须使用分配给我的 WSL 发行版的 IP 地址(来自 的那个wsl hostname -I

为了通过 localhost 提供服务,我找到了这个 portforwarding script,它有效。但我想了解为什么需要它。

为什么某些服务需要端口转发,而不是全部?

标签: networkingwindows-subsystem-for-linuxportforwardingwsl-2

解决方案


我的困惑来自 WSL-2 的防火墙问题。

我发现的是:

  • 在 WSL-2 中的端口上侦听的服务可以从主机访问,因为localhost:<port>
  • 无法从主机外部访问 WSL-2 端口
  • WSL-2 端口可以通过netstat interface portproxy使用 WSL 实例的 IP 地址或其他端口转发工具提供。

防火墙不允许仅通过列出端口来访问 WSL 端口。我必须在我的防火墙规则中专门选择iphlpsv服务(IP Helper 服务)以允许流量通过 WSL 实例。


推荐阅读