温馨提示×

ubuntu telnet慢为何

小樊
40
2026-10-12 17:14:33
栏目: 智能运维

在 Ubuntu 上 telnet 连接慢,通常不是 telnet 协议本身的问题,而是连接建立前后的系统行为导致的。下面按常见原因从高到低说明,并给出对应解决办法。


1. DNS 反向解析(最常见)

很多 telnet server(如 in.telnetd) 在连接时会尝试对客户端 IP 做 反向 DNS 解析(PTR)。

如果:

  • 客户端 IP 没有 PTR 记录
  • DNS 服务器不可达 / 很慢

就会导致 telnet 登录前卡住几秒到几十秒。

表现

telnet 192.168.1.10
# 连接成功,但“登录提示”很慢

解决办法

方法 1:服务端禁用 DNS 解析

如果是你自己的 telnet 服务:

# Ubuntu 使用 systemd + inetd/telnetd

编辑 /etc/xinetd.d/telnet(如果有):

service telnet
{
    disable = no
    flags = REUSE
    socket_type = stream
    wait = no
    user = root
    server = /usr/sbin/in.telnetd
    server_args = -h
}

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

或 systemd 下:

systemctl edit telnet.socket

添加:

[Service]
ExecStart=
ExecStart=/usr/sbin/in.telnetd -h

方法 2:客户端用 IP 而不是主机名

telnet 192.168.1.10
# 而不是
telnet myserver.local

2. /etc/nsswitch.conf 配置不当

如果系统配置优先使用 DNS 而不是 files:

cat /etc/nsswitch.conf

典型问题行:

hosts: files dns

如果 DNS 慢,就会卡。

建议

确保:

hosts: files dns

并且 /etc/hosts 中有对应 IP。


3. 防火墙 / 安全模块延迟

  • ufw
  • iptables
  • fail2ban
  • TCP Wrappers (/etc/hosts.allow, /etc/hosts.deny)

这些可能在连接时做检查或日志,导致延迟。

检查

sudo ufw status
sudo iptables -L -n

4. IPv4 / IPv6 双栈问题

telnet 客户端可能先尝试 IPv6,失败后再 IPv4,造成慢。

测试

telnet -4 192.168.1.10

解决

在 /etc/gai.conf 中优先 IPv4(取消注释):

precedence ::ffff:0:0/96 100

5. 服务端系统负载高

  • CPU 高
  • 磁盘 IO 卡
  • 登录 shell 启动慢(如 .bashrc 中有网络操作)

检查

top
uptime

6. telnet 本身已不推荐

⚠️ telnet 是明文协议,不安全

建议替代:

  • ssh
  • nc (netcat)
  • socat

快速排查清单 ✅

telnet -4 IP
# 看是否快

服务端加 -h
# 看是否快

/etc/hosts 加 IP
# 看是否快

如果你愿意,可以告诉我:

  • 是 客户端慢 还是 服务端登录慢
  • Ubuntu 版本
  • 是连本地还是远程

我可以帮你精准定位。

0 踩