从 WSL2 到 Win 的多播不起作用

从 WSL2 到 Win 的多播不起作用

我在用着ROS 2(机器人中间件)同时存在于 WSL2 和同一台机器上的主机 Windows 操作系统中。

对于通信,ROS 2 使用 UDP 多播(它还附带一个方便的多播故障排除工具):

为了通过 DDS 成功通信,所使用的网络接口必须启用多播。我们在过去的经验中发现,在使用环回适配器时,此功能可能不一定默认启用(在 Ubuntu 或 OSX 上)。请参阅原始问题或者关于 ros-answers 的对话您可以使用 ROS 2 工具验证当前设置是否允许多播:

在 1 号航站楼:

ros2 multicast receive

在 2 号航站楼:

ros2 multicast send

因此我尝试进行诊断:

  • 从 Win 向 Win 发送多播:有效
  • 从 WSL2 向 WSL2 发送多播:有效
  • 从 Win 向 WSL2 发送多播:它有效
  • 从 WSL2 向 Win 发送多播:不起作用

如何启用从 WSL2 向 Windows 发送多播?

ROS 2 文档继续:

如果第一个命令没有返回类似的响应:

Received from xx.xxx.xxx.xx:43751: 'Hello World!'

那么您将需要更新防火墙配置以允许使用 ufw 进行多播。

sudo ufw allow in proto udp to 224.0.0.0/4

sudo ufw allow in proto udp from 224.0.0.0/4

我在我的 WSL2(ubuntu-22)实例中运行上述两个ufw命令,但仍然无法从 WSL2 向 Win 发送多播……

相关内容