NAT防火墙后Apache Geode locator外部无法连接问题咨询
问题原因
这是Java RMI协议在NAT网络场景下的典型问题:你当前配置里jmx-manager-bind-address指定的是内网IP W.X.Y.Z,RMI注册中心默认会把绑定的内网IP返回给外部访问客户端,公网客户端拿到内网IP自然无法建立后续RMI通信连接,和你抓包发现的RMI流无法建立的现象完全吻合。
解决步骤
1. 调整Geode locator启动配置
在你现有的Gemfire属性文件基础上,新增以下两个配置项:
jmx-manager-hostname-for-clients=A.B.C.D:指定JMX RMI服务返回给外部客户端的公网IP,替换默认返回的内网绑定IPrmi-server-port=40404:固定RMI后续通信的端口为40404,避免RMI默认使用随机端口导致防火墙拦截
现有配置不需要修改:server-bind-address、jmx-manager-bind-address保持为内网IP W.X.Y.Z即可,jmx-manager-port保持默认的1099即可。
2. 确认NAT防火墙配置
检查以下规则是否生效:
- 公网IP A.B.C.D的10334、1099、40404三个TCP端口,均做了DNAT映射到内网W.X.Y.Z的对应端口
- 白名单公网IP的这三个端口入站流量已放行
验证方式
配置调整完成后重启locator,先在公网白名单机器上用telnet A.B.C.D 端口号分别验证三个端口连通性,确认都通之后再执行gfsh连接命令即可:gfsh>connect --locator=A.B.C.D[10334]
内容的提问来源于stack exchange,提问作者user11145293
相关产品推荐
相关产品推荐

