什么有效

什么有效

我在 Windows 10(版本 10.0.19044 Build 19044)主机操作系统上运行了 WSL 2 中的 Ubuntu。

Windows Defender 防火墙已完全禁用

什么有效

  1. 非常基本的Express 应用程序 index.js

    const express = require('express')
    const app = express()
    const port = 3000
    
    app.get('/', (req, res) => {
      res.send('Hello World!')
    })
    
    app.listen(port, () => {
      console.log(`Example app listening on port ${port}`)
    })
    

    在 WSL 内部,我运行npm initnpm i express最后运行node index.js

    然后在主机操作系统的浏览器中访问 http://localhost:3000 并看到“Hello World!”。

  2. 其他 Node 应用程序(例如 EmberJS):

    npx ember-cli -- new foo
    cd foo/
    npm start
    

    这将在 WSL 内部的 4200 端口上启动一个开发服务器。

    然后在主机操作系统的浏览器中访问 http://localhost:4200 并看到一个样板应用程序。

什么不起作用

(当然,我首先确保端口可用)

  1. 运行节点http-server

    npx http-server -p 3000从 WSL 内部开始。

    在此处输入图片描述

    我在主机操作系统中访问 http://localhost:3000。尽管使用与之前相同的端口和主机,但我看到“连接被拒绝”。

    从 WSL 内部,页面确实打开了(例如使用links http://localhost:3000)。

  2. 运行 Python HTTP 服务器:

    python3 -m http.server 4200从 WSL 内部开始。

    在此处输入图片描述

    我在主机操作系统中访问 http://localhost:4200。尽管使用与之前相同的端口和主机,但我看到“连接被拒绝”。

    从 WSL 内部,页面确实打开了(例如使用links http://localhost:4200)。

  3. 使用 运行无头 Chrome --remote-debugging-port

    主机操作系统上的 Chrome 无法连接到 WSL 中的无头 Chrome。

我尝试过

以下两种方法都无济于事:

  1. 正在重新启动。
  2. wsl --shutdown
  3. 谷歌搜索。很多次。

笔记

例如,当我启动时npx http-server -p 4200,主机操作系统的资源监视器的网络选项卡中会出现一个条目。它显示端口4200、进程wslhost.exe、防火墙状态“允许,不受限制”。

在此处输入图片描述

然而,我看到的是这样的:

在此处输入图片描述

更新 1:我去过

答案1

该问题是由 Surfshark VPN 引起的,无论是否连接。

从主机操作系统上卸载 Surfshark 并重新启动解决了我的问题。

相关内容