Telnet无法远程登录通常与服务未安装/启动、防火墙拦截、SELinux限制、配置文件错误有关,以下是逐步排查方案:
CentOS默认仅安装Telnet客户端(telnet),服务端(telnet-server)需手动安装。执行以下命令检查并安装:
# 检查是否安装telnet-server
rpm -qa | grep telnet-server
# 若未安装,执行以下命令安装(依赖xinetd)
sudo yum install -y telnet-server xinetd
Telnet服务由xinetd(超级守护进程)管理,需修改配置并启动服务:
# 修改Telnet配置文件(启用服务)
sudo vi /etc/xinetd.d/telnet
# 找到"disable = yes",改为"disable = no"(关键步骤)
# 保存退出后,重启xinetd服务
sudo systemctl restart xinetd
# 设置开机自启
sudo systemctl enable xinetd
CentOS 7及以上默认使用firewalld,需允许23端口流量:
# 临时开放23端口(立即生效)
sudo firewall-cmd --add-port=23/tcp
# 永久开放(重启后保留)
sudo firewall-cmd --permanent --add-port=23/tcp
# 重载防火墙规则
sudo firewall-cmd --reload
若使用iptables(CentOS 6),执行:
sudo iptables -A INPUT -p tcp --dport 23 -j ACCEPT
sudo service iptables save
若SELinux处于Enforcing模式,可能阻止Telnet登录。可临时关闭测试或调整策略:
# 临时关闭SELinux(测试用)
sudo setenforce 0
# 若需永久关闭,编辑/etc/selinux/config,将"SELINUX=enforcing"改为"SELINUX=permissive"
# 或添加以下命令允许Telnet相关操作(推荐)
sudo setsebool -P telnet_home true
sudo setsebool -P telnet_tty true
默认情况下,CentOS限制root通过Telnet远程登录。需修改/etc/securetty文件:
sudo vi /etc/securetty
# 在文件末尾添加以下内容(允许所有伪终端登录)
pts/0
pts/1
pts/2
# 保存退出后,重启Telnet服务
sudo systemctl restart xinetd
在客户端使用以下命令测试远程登录:
telnet <服务器IP地址>
# 输入用户名和密码,若出现登录提示则配置成功
netstat -tuln | grep 23检查Telnet服务是否监听23端口,或通过ping测试网络连通性。