Linux telnet命令用于远端登入。常用于检测本机到目标主机的端口是否可达,有时候能ping通,说明网络连接通的,但是telnet不通,导致服务还是不通的。
两个可能的原因,依次排查
一、检查防火墙状态
# 查看防火墙状态
firewall-cmd --state
解决方案:
关闭防火墙,你如果不想关闭防火墙,就要设置安全组了,暴露出对应端口。
# 永久关闭
systemctl disable firewalld.service
二、查看服务状态,以9092端口为例
[root@VM_0_9_centos config]# netstat -tunlp | grep 9092
tcp6 0 0 :::9092 :::* LISTEN 2604/java
上面的第四个参数 :::9092 表示ipv6的对公网访问,0.0.0.0是ipv4的对公网访问,
如果是127.0.0.1表示只对本地访问,就会出现下面问题
# telnet通
telnet localhost 9092
# telnet不通
telnet ip 9092
解决方案:
修改你的9092端口的服务,不要设置为localhost,看是不是可以设置为0.0.0.0或者是不设置直接走默认值
(例如kafka的listeners)