在 Debian 上 telnet 登录失败 常见原因有很多,下面按“最常见 → 较少见”的顺序给你排查清单,你可以逐条对照。
Debian 默认 不安装 telnet 服务。
检查:
dpkg -l | grep telnet
如果没有 telnetd 或 inetd 相关包:
安装:
apt update
apt install telnetd
或(传统方式):
apt install openbsd-inetd telnetd
telnet 通常依赖 inetd:
systemctl status inetd
启动:
systemctl start inetd
systemctl enable inetd
grep telnet /etc/inetd.conf
如果没有或前面有 #:
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
改完后重启 inetd:
systemctl restart inetd
iptables -L -n
或(nftables):
nft list ruleset
开放端口:
iptables -A INPUT -p tcp --dport 23 -j ACCEPT
这是 正常现象。
Debian 默认只装 SSH,不装 telnet。
检查:
grep 用户名 /etc/passwd
shell 是否是 /bin/false 或 /usr/sbin/nologin
可改:
chsh -s /bin/bash 用户名
很多 telnet 实现 禁止 root 直接登录
用普通用户登录后再:
su -
查看:
cat /etc/pam.d/login
cat /etc/securetty
| 报错 | 可能原因 |
|---|---|
| Connection refused | 服务没开 |
| Connection timed out | 防火墙 / 网络 |
| Login incorrect | 账号或 shell 问题 |
| Permission denied | PAM / root 限制 |
| 连上立刻断开 | inetd 配置错误 |
⚠️ Telnet 是明文协议,极不安全
生产环境请直接用:
ssh 用户@IP
systemctl status inetd
netstat -tlnp | grep 23
iptables -L -n | grep 23
如果你愿意,可以把 具体报错信息 或 telnet IP 后的提示贴出来,我可以直接帮你定位是哪一步的问题。