在 Debian 上 telnet 连接慢,通常不是 telnet 本身的问题,而是 DNS 反向解析 / 网络 / 系统配置 导致的。下面按常见原因给你排查和解决思路。
ssh 也可能慢telnetd 默认会对客户端 IP 做 反向 DNS 解析,如果 DNS 不通或慢,就会卡住。
编辑 /etc/inetd.conf(如果使用 inetd):
sudo nano /etc/inetd.conf
找到 telnet 行,例如:
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
改为:
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd -D
或更彻底(不推荐长期使用,仅测试):
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd -h
然后重启 inetd:
sudo systemctl restart inetd
/etc/hosts(最常用)把客户端 IP 加到 hosts:
sudo nano /etc/hosts
例如:
192.168.1.100 client-pc
编辑:
sudo nano /etc/nsswitch.conf
找到:
hosts: files dns
改为:
hosts: files
⚠️ 注意:这会影响所有 DNS 解析,不建议服务器长期使用。
如果你用的是 systemd + telnet socket:
sudo nano /lib/systemd/system/telnet.socket
在 [Socket] 段添加:
NoDelay=true
然后:
sudo systemctl daemon-reload
sudo systemctl restart telnet.socket
禁用 IPv6(临时):
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
永久禁用(Debian):
sudo nano /etc/sysctl.conf
添加:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
ping 目标IP
telnet 目标IP 23
在服务器本地测试:
telnet localhost
⚠️ telnet 是明文协议,不建议在生产环境使用
推荐替代方案:
sshsocatnc(临时调试)# 1. 本地测试
telnet localhost
# 2. 看 DNS
cat /etc/resolv.conf
# 3. 改 hosts
# 4. 禁用 IPv6
# 5. 重启服务
如果你愿意,可以告诉我:
cat /etc/debian_version)inetd / systemd我可以给你 精确到命令级别 的方案。