在 Debian 上 telnet 连接慢,通常不是 telnet 本身的问题,而是系统在网络连接建立前后的解析或认证环节卡住。下面按常见原因逐一说明,并给出排查/解决办法。
telnet 服务端(或被连接端)在建立连接后,会尝试对客户端 IP 做 反向 DNS 解析(PTR)。
如果:
/etc/resolv.conf 配置错误就会导致 telnet 登录前卡几秒到几十秒。
telnet 192.168.1.10
# 卡住 5~30 秒后才出现 login
如果是 telnetd(inetd):
编辑 /etc/inetd.conf:
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd -h
-h 表示不反向解析主机名
重启:
systemctl restart inetd
systemctl edit telnet.socket
加:
[Service]
ExecStart=
ExecStart=/usr/sbin/in.telnetd -h
即使 telnet 不解析,PAM 也可能卡。
grep pam_.*dns /etc/pam.d/*
编辑 /etc/nsswitch.conf:
hosts: files dns
不要写成:
hosts: dns files
如果:
hostname
返回 debian
但 /etc/hosts 没有:
127.0.0.1 debian
::1 debian
也会导致慢。
vi /etc/hosts
加上本机名。
Debian 默认优先 IPv6,如果网络不支持 IPv6,会等超时。
telnet -4 192.168.1.10
如果明显变快,就是 IPv6 问题。
vi /etc/gai.conf
取消注释:
precedence ::ffff:0:0/96 100
/etc/hosts.allow / hosts.deny)检查:
cat /etc/hosts.deny
cat /etc/hosts.allow
time telnet 127.0.0.1
time telnet -4 192.168.1.10
ping -c3 8.8.8.8
cat /etc/resolv.conf
systemctl status inetd
⚠️ telnet 是明文协议,极不安全 生产环境请直接用:
ssh user@host
如果你愿意,可以告诉我:
cat /etc/debian_version)我可以给你精确的一行命令级解决方案。