在 Linux 上 telnet 无法登录 通常涉及服务、网络、权限或安全策略问题。可以按下面步骤逐步排查:
which telnetd
或
rpm -qa | grep telnet
# 或
dpkg -l | grep telnet
如果没有 telnet-server / telnetd,需要安装:
# CentOS / RHEL
yum install telnet-server
# Ubuntu / Debian
apt install telnetd
telnet 通常依赖 xinetd:
systemctl status xinetd
systemctl start xinetd
systemctl enable xinetd
确认 telnet 已启用:
vi /etc/xinetd.d/telnet
确保:
disable = no
重启 xinetd:
systemctl restart xinetd
netstat -lntp | grep 23
# 或
ss -lntp | grep 23
正常应看到:
tcp 0 0 :::23 :::* LISTEN
# firewalld
firewall-cmd --list-all
firewall-cmd --add-port=23/tcp --permanent
firewall-cmd --reload
# iptables
iptables -L -n
getenforce
如果是 Enforcing,可临时测试:
setenforce 0
永久允许:
setsebool -P telnetd_on 1
/etc/securetty 限制telnet 登录用户必须在:
cat /etc/securetty
若没有 pts/0 等,可添加:
pts/0
pts/1
passwd -S 用户名
若状态是 L(锁定),解锁:
passwd -u 用户名
默认禁止 root 直接 telnet,这是安全设计
解决方式:
su -echo "pts/0" >> /etc/securetty
检查:
vi /etc/pam.d/login
确认没有被强制拒绝 telnet 用户。
ping 服务器IP
telnet 服务器IP 23
⚠️ telnet 是明文传输,极不安全 生产环境强烈建议使用:
systemctl status sshd
✅ telnet-server 已装
✅ xinetd 已启动
✅ 23 端口监听
✅ 防火墙放行
✅ SELinux 允许
✅ 用户未锁定
✅ 非 root 直登
如果你愿意,可以告诉我:
我可以帮你精准定位。