外网通过ssl访问内网kafka可以连接,但是发送数据会报超时的错误,但是内网可以正常ssl连接发送数据,是什么原因?

Always丶冷笑 发表于: 2020-11-30   最后更新时间: 2021-10-19 10:45:32   1,508 游览

1、外网通过ssl访问内网kafka可以连接,但是发送数据会报超时的错误,但是内网可以正常ssl连接发送数据,是什么原因。往外可以通过9092正常访问到内网kafka;内网之间可以用9092和9093相互正常访问

2、kakfa2.5,

3、相关代码

broker.id=0
### SSL Start
listeners=PLAINTEXT://kafka-01:9092,SSL://kafka-01:9093
advertised.listeners=PLAINTEXT://kafka-01:9092,SSL://10.0.0.209:9093
ssl.keystore.location=/root/ssl/server.keystore.jks
ssl.keystore.password=kfk123456
ssl.key.password=kfk123456
ssl.truststore.location=/root/ssl/server.truststore.jks
ssl.truststore.password=kfk123456
ssl.endpoint.identification.algorithm=
ssl.client.auth=required
ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1
ssl.keystore.type=JKS
ssl.truststore.type=JKS
#security.inter.broker.protocol=SSL
#ssl.protocol=TLS
#ssl.endpoint.identification.algorithm=HTTPS

4、当在外网访问发送数据会卡主,然后报错

[2020-11-30 17:25:07,148] ERROR Error when sending message to topic test_02 with key: null, value: 10 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Topic test_02 not present in metadata after 60000 ms.
发表于 2020-11-30
添加评论

这个不需要了,删了吧

advertised.listeners=PLAINTEXT://kafka-01:9092,SSL://10.0.0.209:9093

另外,观察下kafka日志,看看有没有报错,也看看9093端口启动成功了没。

netstat -unltp | grep 9093

都是没问题的,因为开了9092和9093,9092就可以正常访问,但是9093就是可以连上(如果密码不对也会直接报错,连接不上),但是发送信息就会返回超时的错误。kafka的日志没有什么报错。

内网连接9093是没有问题的

你配置的是域名吧?
就是kafka-01

这个就是主机名

你外网访问的时候,配置一个host,设置为主机名。
参考:https://www.orchome.com/1903

本地的hosts,是配置的

公网ip kakfa-01

现在就是很费解,外网9092是没问题,9093有问题。内网9092和9093都没问题。

看来你只能跟踪一下路由了。

端口和ip是用防火墙进行映射的,是不是和这个有关系?

9093如果是通的,理论上是没问题的。
而且你还是单节点。

你的答案

查看kafka相关的其他问题或提一个您自己的问题