
go-micro服务发现故障:firewall与iptables冲突
在go-micro服务发现问题中,当开启firewall时,发现节点失败。这源于centos中的firewall和iptables之间的冲突。
问题追踪
具体来说,问题出现在iptables规则链中。当firewall关闭时,服务功能正常,但打开firewall后,由于防火墙规则链的影响,服务发现无法成功。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
解决方案
修复问题的方法是检查并调整iptables规则链,确保go-micro所需的端口(5672/tcp和5672/udp)不被阻止。可以通过以下命令添加规则:
firewall-cmd --zone=public --add-port=5672/tcp --permanent firewall-cmd --zone=public --add-port=5672/udp --permanent
之后,重新启动firewall并验证服务发现是否正常即可。









