温馨提示×

linux telnet为何慢

小樊
45
2026-08-20 15:43:36
栏目: 智能运维

Linux 下 telnet 连接慢,通常不是网络本身慢,而是 DNS 反向解析、系统配置或服务端行为 导致的。下面按常见原因从高到低给你说明,并给出对应的解决办法。


一、最常见原因:DNS 反向解析(90% 的情况)

现象

  • telnet ip 要等 5~30 秒 才连上
  • ping ip 很快
  • 一旦连上,交互正常

原因

很多 Linux 服务(包括 telnetdsshdftp)在客户端连接时,会尝试对客户端 IP 做 反向 DNS 解析(PTR)

如果 DNS 不可达或超时,就会卡住。


解决办法

✅ 方法 1:禁用 telnet 的反向解析(推荐)

如果是 telnet 服务端(telnetd)

# 编辑 telnet 启动参数
vim /etc/xinetd.d/telnet

加入或修改:

server_args = -h

-h 表示 不反向解析主机名

然后重启:

systemctl restart xinetd

✅ 方法 2:在客户端禁用 DNS(临时验证)

telnet -b

或:

export RES_OPTIONS=retrans:1 retry:1 timeout:1

✅ 方法 3:配置本地 DNS 或 /etc/hosts

服务端/etc/hosts 中加入客户端 IP:

192.168.1.100 client

二、PAM / systemd-logind 慢(服务器侧)

现象

  • telnet 能连上
  • 登录时卡在输入用户名/密码之后

原因

  • PAM 做认证
  • systemd-logind 创建 session
  • DNS / LDAP / NIS 超时

排查

systemctl status systemd-logind
journalctl -xe

解决

  • 检查 /etc/nsswitch.conf
  • 禁用不必要的 LDAP / NIS

三、防火墙 / SYN 队列 / 半连接

现象

  • 建立 TCP 连接就很慢
  • telnet 还没到登录界面就卡

排查

ss -lntp
iptables -L -n

可能原因

  • SYN flood 防护
  • netfilter 规则复杂
  • 半连接队列满

四、IPv6 导致慢(非常常见)

现象

  • telnet 默认先尝试 IPv6
  • 超时后才用 IPv4

解决

临时

telnet -4 192.168.1.1

永久(不推荐,除非确认不用 IPv6)

sysctl -w net.ipv6.conf.all.disable_ipv6=1

五、服务端 telnetd 本身问题

telnet 是 古老协议,很多系统:

  • 默认不装
  • 或实现质量差
  • 或已被 systemd 接管

强烈建议

ssh 替代 telnet


六、快速定位 checklist(推荐)

你可以按顺序执行:

# 1. 看是否是 DNS
time telnet 192.168.1.1

# 2. 抓包
tcpdump -i eth0 host 192.168.1.1 and port 23

# 3. 看反向解析
nslookup 192.168.1.1

总结一句话

Linux telnet 慢,90% 是 DNS 反向解析或 IPv6 导致的,不是网络问题。

如果你愿意,可以把下面信息发我,我可以精准判断:

  • 客户端 / 服务端系统版本
  • telnet ip 卡在哪一步
  • 是否在内网 / 云服务器

0