You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ROS2 Foxy多机通信:组播正常但Talker/Listener无法通信的防火墙配置

ROS2 Foxy跨机通信防火墙配置方案

一、精确允许两台主机间的全量TCP/UDP通信

ROS2节点会动态分配单播端口,仅开放组播不足以覆盖所有通信需求,直接允许两台静态IP主机间的所有TCP/UDP流量是最可靠的方案:
假设两台主机静态IP分别为192.168.1.100和192.168.1.101,执行以下命令:

  • 允许双向TCP通信:
ufw allow from 192.168.1.100 to 192.168.1.101 proto tcp
ufw allow from 192.168.1.101 to 192.168.1.100 proto tcp
  • 允许双向UDP通信:
ufw allow from 192.168.1.100 to 192.168.1.101 proto udp
ufw allow from 192.168.1.101 to 192.168.1.100 proto udp

执行后重启防火墙生效:

ufw reload

二、补充DDS组播地址规则(可选)

如果仅想开放必要的组播范围,可添加DDS常用的组播地址段规则:

ufw allow in proto udp to 239.255.0.0/16
ufw allow out proto udp to 239.255.0.0/16
ufw allow in proto udp to 224.0.0.0/24
ufw allow out proto udp to 224.0.0.0/24

三、系统组播参数优化(可选)

确保系统启用组播转发,编辑/etc/sysctl.conf文件,添加以下内容:

net.ipv4.ip_forward=1
net.ipv4.conf.all.mc_forwarding=1

保存后执行以下命令使参数生效:

sysctl -p

完成以上配置后,无需关闭防火墙,即可正常跨机运行demo_nodes_cpp的talker和listener节点。

内容的提问来源于stack exchange,提问作者martin_0004

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 19:00:09