zfreebird

朝闻道 夕死可矣

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
这个报错 不是 RocketMQ 自己的问题,而是 宿主机 Linux 内核没有打开 IPv4 转发,导致容器拿不到外部网络(NameServer、Broker 都连不上)。
两行命令即可永久修复,按顺序执行完 重启 Docker 服务 即可消失。

 一步开启 IPv4 转发(CentOS 7 / RHEL 7/8 通用)

# 1. 临时生效(立即打开)
sudo sysctl -w net.ipv4.ip_forward=1

# 2. 写入配置文件,开机永久生效
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf

# 3. 重载内核参数
sudo sysctl -p

# 4. 重启 Docker 守护进程
sudo systemctl restart docker
 

 验证

# 容器里应该能 ping 通外网
docker run --rm alpine ping -c 2 8.8.8.8
 
若返回正常延迟,说明转发已生效,再启动 RocketMQ 容器就不会再出现
WARNING: IPv4 forwarding is disabled. Networking will not work.

如果用了 firewalld

CentOS 7 默认防火墙会拦截转发流量,再执行下面两条保险:
sudo firewall-cmd --permanent --add-masquerade
sudo firewall-cmd --reload
 
完成以上操作后,重新创建/启动 RocketMQ 容器,网络即可恢复正常。
posted on 2025-10-15 11:38  zfreebird  阅读(4)  评论(0)    收藏  举报