无法从 Windows 主机连接到 WSL2 上的本地服务器

2024-01-04

我有一个Python项目使用waitress在 WSL2/Ubuntu 20 上的本地主机上提供服务。我从 VSCode 远程启动服务器,但无法使用地址从 Windows 上的浏览​​器连接到它http://127.0.0.1:5998 http://127.0.0.1:5998或 http://localhost:5998,出现无法连接错误。我找不到它有什么问题并感谢任何帮助。

Python服务器:

@app.route('/')
def index():
    return 'Success'
...
if __name__ == '__main__':
    from waitress import serve
    process_count = multiprocessing.cpu_count()
    serve(app, host="0.0.0.0", port=5998, threads=process_count)

我看到它在 WSL 上监听:

> sudo lsof -i -P -n | grep LISTEN
python3 1263 xxx    8u  IPv4  39138      0t0  TCP *:5998 (LISTEN)

我还尝试使用 127.0.0.1 作为serve() ip而不是0.0.0.0,但没有帮助。

我在 Windows 防火墙中有一条规则:

> Get-NetFirewallRule -DisplayName WSL

Name                  : {9c5c5f2b-a9c7-42b7-82ac-f0c2b1819103}
DisplayName           : WSL
Description           :
DisplayGroup          :
Group                 :
Enabled               : True
Profile               : Any
Platform              : {}
Direction             : Inbound
Action                : Allow
EdgeTraversalPolicy   : Block
LooseSourceMapping    : False
LocalOnlyMapping      : False
Owner                 :
PrimaryStatus         : OK
Status                : The rule was parsed successfully from the store. (65536)
EnforcementStatus     : NotApplicable
PolicyStoreSource     : PersistentStore
PolicyStoreSourceType : Local

我已经检查了 Windows 上使用的端口netstat -o似乎没有任何东西在使用端口 5998。


我已经通过在 Windows 上添加端口转发解决了这个问题。

在 WSL 上运行:

ifconfig

inet IP 上eth0条目是您的 WSL IP。

在 Windows 上运行此命令:

netsh interface portproxy add v4tov4 listenport=<port> listenaddress=0.0.0.0 connectport=<port> connectaddress=<your WSL IP>

之后我可以使用连接localhost:<port> or 127.0.0.1:<port> or <WSL IP>:<port>从 Windows 上的浏览​​器。

您可以使用列出当前端口代理netsh interface portproxy show all命令。

您可能需要添加防火墙规则 https://www.nextofwindows.com/allow-server-running-inside-wsl-to-be-accessible-outside-windows-10-host用于 Windows 上的端口。

更多信息:https://github.com/microsoft/WSL/issues/4150#issuecomment-927091364 https://github.com/microsoft/WSL/issues/4150#issuecomment-927091364

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法从 Windows 主机连接到 WSL2 上的本地服务器 的相关文章

随机推荐

  • 处理缓存动态数据

    我正在使用名为 Quickcache for PHP 的东西 它提供网页的全页缓存 它工作得很好 但我唯一的问题是我有一个动态网站 并且当缓存打开时 某些内容不会按照我想要的方式更新 例如 如果用户登录 即使用户登录到服务器 登录框仍然会出
  • PHP表格(日期)根据有效性动态变色

    div class table responsive table class table table striped table bordered thead th Client Contract Number th th Currentl
  • Delphi 11 中“SSL 协商失败”

    我尝试使用下面的代码发送电子邮件 取自http delphiprogrammingdiary blogspot com 2014 12 how to send email in delphi html http delphiprogramm
  • 从更大的 JSON 字符串中检索所需的字符串

    我有方法返回的 JSON 字符串 public List
  • protobuf-net 如何实现可观的性能?

    我想明白为什么 NET 的协议缓冲区解决方案 http code google com p protobuf net 由开发马克 格拉维尔 https stackoverflow com users 23354 marc gravell就这
  • 如何访问字典列表中的值?

    假设我有一个包含姓名 年龄和其他信息的字典列表 如下所示 thisismylist Name Albert Age 16 Name Suzy Age 17 Name Johnny Age 13 我将如何使用 for 循环打印以下内容 Alb
  • 使用 swift 语言更改按钮背景颜色

    我是 swift 语言的新手 有人可以告诉我如何使用 swift 语言更改按钮的背景颜色吗 button backgroundColor UIColor blue 或任何其他颜色 red green yellow etc 另一个选项是 RG
  • 当我的代码不在堆栈跟踪中时,如何调试 node.js 错误?

    事实上 我并不完全理解why如果节点是单线程的 我的代码不在堆栈跟踪中 也许我从根本上误解了一些东西 但是为什么我的应用程序有时会因堆栈跟踪而终止 而堆栈跟踪中没有我编写的任何内容 我正在使用 node express 编写一个非常简单的代
  • 在使用 MVP 模式构建的 ASP.NET Web 表单应用程序上应用依赖注入

    我正在使用 MVP 模式创建 ASP NET Web 表单应用程序 我的观点的结构是这样的 public partial class ShipperView System Web UI Page IShipperView ShipperPr
  • 使用 Dapper.NET 从存储过程调用获取 Oracle OUT 参数的值

    编辑 使用Execute方法而不是Query QueryMultiple方法 我的OUT SUCCESS参数现在有一个AttachedParam与 与 与OracleParameter有返回值 因此 例如 如果我仅需要检索非游标参数 那么这
  • 打包使用 ImageMagick C API 的应用程序

    我创建了一个使用 ImageMagick C API 的小型 Windows 应用程序 但遇到了一些困难 该应用程序运行良好 我已准备好与我们组织中的其他一些人共享它 但如果不在目标计算机上安装 ImageMagick 我找不到有关分发此类
  • 北欧航空公司。变量是否在数据步骤的每次迭代中都设置为缺失?

    我一直认为数据步骤的每次迭代都将变量设置为缺失 然而 在下面的代码中 变量看起来像是保留了最开始获取的值 我不明白为什么会发生这种情况 data one input x y datalines a 10 a 13 a 14 b 9 run
  • Apache Camel超时同步路由

    我正在 trwing 使用 Apache Camel 构造一个带有超时的同步路由 但我在框架中找不到任何可以解析它的内容 所以我决定建立一个为我制作的流程 public class TimeOutProcessor implements P
  • 为什么 Visual Studio 2019 社区中我的 SSIS 工具箱为空?

    我安装了 Visual Studio 2019 Community 然后安装了数据工具 我可以打开 Integration Services 项目 但当我查看 SSIS 工具箱时 它是空的 我该如何解决 我使用的是 Visual Studi
  • 无法加载 DLL“mqrt.dll”

    我开发了一个 WCF 服务 它作为 Windows 服务托管并公开 MSMQ 端点 我在 SERVER1 上有客户端应用程序 在 SERVER2 上有 MSMQ 和 WCF 服务 当 SERVER1 ClientApp 尝试将消息推送到 S
  • 数据准备好后如何关闭Loader

    In my Ionic 2app 中 我有一个使用服务的组件 该服务使用 http GET 来获取一些数据 然后 我的组件调用该服务 当数据可用时 它会设置并呈现该数据 看起来像以下 export class FarmList implem
  • 在 Access 中导入 Excel 数据

    我的 Access 应用程序中有一个表 需要填充一堆 Excel 文件中的数据 我尝试了这段代码 DoCmd TransferSpreadsheet acImport acSpreadsheetTypeExcel8 strTable str
  • 使用 BouncyCastle 在 C# 中读取 DER 私钥

    我正在尝试使用 BouncyCastle 将 RSA 私钥读入 Net 来测试我之前加密的数据 加密数据使用公钥和 Bouncy Castle 工作正常 我还使用了与下面相同的私钥 DER 格式 在 PHP 应用程序中成功解密我的数据 但我
  • VHDL门控时钟如何避免

    我收到了避免使用门控时钟的建议 因为它可能会导致松弛和时序限制问题 但我想问一下我可以认为什么是门控时钟 例如 此代码对时钟进行门控 因为 StopCount 对它进行门控 process ModuleCLK begin if rising
  • 无法从 Windows 主机连接到 WSL2 上的本地服务器

    我有一个Python项目使用waitress在 WSL2 Ubuntu 20 上的本地主机上提供服务 我从 VSCode 远程启动服务器 但无法使用地址从 Windows 上的浏览 器连接到它http 127 0 0 1 5998 http