AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1736659
Accepted
AtomicGu
AtomicGu
Asked: 2022-08-13 02:19:55 +0800 CST2022-08-13 02:19:55 +0800 CST 2022-08-13 02:19:55 +0800 CST

WSL2 IP包源地址被windows修改,导致连接失败

  • 772

这是我的网络拓扑:

网络拓扑结构

我在 上启用了路由和远程访问服务 (RRAS) DESKTOP,将其用作路由器。当我执行时事情进展顺利ping 192.168.43.188(WSL2顺便说一句:我在 Windows 防火墙管理器中允许 ICMPv4)。但是当我执行ping 172.31.24.203时LAPTOP,它失败并报告“没有回复”。

所以我开始调查这里出了什么问题。我检查了路由表,没有什么可疑的。然后我使用wireshark捕获通过172.31.16.1和的数据包192.168.43.107:

Wireshark 截图

正如您在屏幕截图中看到的那样,WSL2 确实发送了回复,但是192.168.43.107发送到时IP 数据包的源地址更改为LAPTOP. 换句话说,ip 源在DESKTOP.

怎么会这样?这没有意义,或者是吗?这是 WSL2 错误还是 Windows 错误,还是我的设置有问题?

windows networking
  • 2 2 个回答
  • 56 Views

2 个回答

  • Voted
  1. harrymc
    2022-08-13T05:44:59+08:002022-08-13T05:44:59+08:00

    IP 地址不会被 DESKTOP 伪造,它只是按设计工作。

    以下是一些注意事项:

    • 地址段172.31.16.X和192.168.43.X是不相交的。在正常情况下,消息不能从一个传递到另一个。

    • WSL2 使用主机适配器访问网络,因此来自它的任何消息实际上都来自 DESKTOP。如果没有此 IP 地址,其他设备将无法回答来自 DESKTOP 的任何内容。

    • WSL2 需要支持多个实例/分布并行运行的情况,并且能够区分它们。出于这个原因,WSL2 在 172.31.16.X网段内为每个人分配一个虚拟 IP,并在通过网络发送消息时进行所需的翻译。这称为 网络地址转换 (NAT)。

    你看到的是正常的,这是唯一可行的方法。对于外部,您的 WSL2 发行版只是 DESKTOP,仅此而已。

    如果您在中间添加了另一个 NAT,使用 RRAS,您就不能指望能够从外部访问 WSL2 特定的 IP。WSL2 使其 NAT 可以从外部寻址应用程序,尽管有一些限制。在中间添加另一个 NAT 只会破坏一切,

    另请参阅 使用 WSL 访问网络应用程序。

    • 1
  2. Best Answer
    NotTheDr01ds
    2022-08-13T06:11:32+08:002022-08-13T06:11:32+08:00

    因此,如果我在字里行间正确阅读,RRAS 是否正在为 WSL2 接口路由流量?否则,通常情况下,笔记本电脑根本看不到172.31.16.1/20网络,我不会这么想。

    如果是这种情况,那么在我看来问题在于 WSL2 交换机不知道该路由,并且仍然是正常的 NAT,将传出源地址更改为 Windows 界面的源地址。同样,正如@DanielB 和@harrymc 所指出的,这是正常的。

    理论上,有一种方法可以禁用它,但 AFAIK 该方法需要 Windows 11,因此它不适用于 Windows Server。不过,我将在下面将其作为一个选项进行介绍。

    将流量从本地网络路由到 WSL2 有几种可能性:

    RRAS 的可能性

    我把它作为一种可能性扔掉了,但我真的不知道它是否会起作用。鉴于 RRAS 的路由器和 VPN 功能,可能有一种方法可以将其配置为“修复”它从 WSL2 接口接收的数据包的源地址。我已经有一段时间没有戴上我的 NAT 思维帽了,所以我需要在衣橱里找到它才能对此有更高的信心。

    WSL1

    这个以及这些选项的其余部分取自我关于相关主题的Ask Ubuntu 答案。他们不需要解决“路由所有 WSL2 流量”问题,而是在应用程序/端口的基础上采取行动(好吧,除了最后一个)。

    对于像这样的大多数网络用例,WSL1 可能是更好的选择。虽然它不一定会修复ping用例,但在 WSL1 下运行的网络应用程序/服务正在Windows网络本身上运行,因此不需要 NAT。

    SSH 反向隧道

    同样对于单个应用程序/端口(而不是整个界面),您可以使用从 WSL2 到 Windows 主机的 SSH 连接。我不会在这里重复这些步骤,而是将您指向原始答案。

    Windows 端口转发

    @harrymc 指向 Microsoft 文档,该文档推荐 Windows 端口转发。这当然是一种选择,但问题是,由于 WSL2 虚拟交换机地址在每次重新启动时都会更改,因此您必须不断地删除和重新添加转发规则。该文档没有提到该警告。

    即使动态地址发生变化,上述 SSH 解决方案也将始终有效。

    具有桥接网络的 WSL2 预览版

    这几乎肯定会起作用,并且禁用 NAT,但您不能在 Windows Server 上执行此操作,我假设您正在使用 RRAS。它目前只能安装在 Windows 11 上,因为它是支持 WSLg 的最新主线。

    安装 WSL2 预览版后(可以从 Microsoft Store 或直接从WSL Github存储库下载版本),您可以关注这篇博文(不是我的),了解如何启用桥接网络的说明。

    • 1

相关问题

  • 批量重命名图像文件集

  • Python 的“pass”参数的批处理等价物是什么?

  • nc如何识别服务名称

  • 在 Windows 上与 Docker 守护进程通信

  • 资源管理器侧面板中的桌面外壳快捷方式

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve