在 Debian 上遇到 telnet 无法登录,一般可以从以下几个方面排查和解决。请按顺序检查:
Debian 默认 不安装 telnet 服务(只可能有 telnet 客户端)。
sudo apt update
sudo apt install telnetd xinetd
telnet 通常由 xinetd 或 inetd 管理:
sudo systemctl status xinetd
如果没有运行:
sudo systemctl enable xinetd
sudo systemctl start xinetd
sudo ss -lntp | grep :23
如果没有监听,说明 telnet 服务没起来。
sudo ufw allow 23/tcp
# 或
sudo iptables -A INPUT -p tcp --dport 23 -j ACCEPT
passwd -S 用户名
若状态是 L,解锁:
sudo passwd -u 用户名
确保用户 shell 合法,例如:
用户名:x:1000:1000::/home/用户名:/bin/bash
不能是 /bin/false 或 /usr/sbin/nologin
cat /etc/pam.d/login
有些系统禁止 root 或某些用户 telnet 登录。
Debian 默认 不允许 root 通过 telnet 登录,这是安全设计。
✅ 正确做法:
su - 或 sudosudo tail -n 50 /var/log/auth.log
sudo journalctl -xe
常见错误:
Connection refused → 服务未起Login incorrect → 用户/密码或 PAM 问题Permission denied → shell 或权限问题⚠️ Telnet 是明文协议,极不安全
生产环境强烈建议使用 SSH:
sudo apt install openssh-server
SSH 登录:
ssh user@服务器IP
✅ telnetd 已安装
✅ xinetd 正在运行
✅ 23 端口已监听
✅ 防火墙放行
✅ 使用普通用户登录
✅ 非 root 直接登录
如果你愿意,可以告诉我:
cat /etc/debian_version)我可以帮你更精确定位问题。