Telnet连接的前提是服务器端已安装并运行Telnet服务。若未安装,客户端无法建立连接;若未启动,服务无法响应请求。
sudo yum install telnet-server telnet
sudo systemctl start telnet.socket # 启动Telnet服务
sudo systemctl enable telnet.socket # 设置开机自启
sudo systemctl status telnet.socket # 确认服务处于“active (running)”状态
CentOS默认启用firewalld或iptables防火墙,若未放行Telnet端口(TCP 23),连接会被拦截,导致超时。
sudo firewall-cmd --permanent --add-service=telnet # 添加Telnet服务到防火墙规则
sudo firewall-cmd --reload # 重新加载防火墙配置
sudo iptables -A INPUT -p tcp --dport 23 -j ACCEPT # 允许TCP 23端口流量
sudo service iptables save # 保存iptables规则(CentOS 7及以上需用systemctl restart iptables)
若SELinux处于Enforcing模式(默认),可能会阻止Telnet服务的正常运行,导致连接超时。
sudo setenforce 0 # 将SELinux设置为Permissive模式,允许所有操作
/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=permissive,然后重启系统:sudo vi /etc/selinux/config
sudo reboot
若客户端与服务器之间的网络不通(如IP地址错误、路由故障、物理连接中断),会导致Telnet连接超时。
ping命令检查服务器IP是否可达:ping <服务器IP地址> # 例如ping 192.168.1.100
ip addr或ifconfig命令确认服务器的网络接口配置正确。默认情况下,Telnet使用TCP 23端口。若服务配置将端口修改为其他值,或服务未正确监听端口,客户端连接时会因找不到端口而超时。
netstat或ss命令查看23端口是否处于监听状态:sudo netstat -tuln | grep 23 # CentOS 7及以上推荐使用ss命令
sudo ss -tuln | grep 23
正常输出应包含0.0.0.0:23(表示监听所有IP的23端口)。/etc/services文件,找到telnet条目,确保端口号为23(默认无需修改);若修改了端口,需同步更新防火墙规则。若服务器端的Telnet服务未启动(如进程崩溃、未正确启动),客户端无法建立连接,导致超时。
sudo systemctl restart telnet.socket # 重启Telnet服务
/var/log/messages或journalctl日志,定位服务启动失败的原因:sudo journalctl -xe # 查看系统日志
sudo less /var/log/messages # 查看messages日志
若客户端未安装Telnet命令,无法发起连接,会提示“command not found”(虽非超时,但需排除)。
sudo yum install telnet # CentOS系统
通过以上步骤逐一排查,可解决大部分CentOS Telnet连接超时的问题。需注意,Telnet协议传输数据为明文,生产环境中建议使用SSH(更安全)替代Telnet。