在 Debian 下,telnet 本身的超时设置取决于你指的是“客户端连接超时”还是“服务器端空闲超时”。下面分情况说明:
Debian 自带的 telnet 命令(通常来自 telnet-client / inetutils-telnet)本身不支持直接设置连接超时参数。
timeout 命令timeout 5 telnet 192.168.1.10 23
表示最多等 5 秒。
nc(netcat)代替nc -w 5 192.168.1.10 23
-w 设置超时时间(秒)。
Debian 中 telnet 服务通常由 telnetd 提供(inetd/xinetd)。
xinetd(常见)编辑:
/etc/xinetd.d/telnet
示例:
service telnet
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/in.telnetd
server_args = -L /bin/login
timeout = 600 # 单位:秒(10分钟)
}
重启 xinetd:
systemctl restart xinetd
inetd在 /etc/inetd.conf 中:
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
inetd 本身不支持细粒度超时,一般依赖 TCP keepalive 或 shell 超时。
即使 telnet 不断,也可以让 shell 自动退出:
export TMOUT=600
(600 秒无操作自动注销)
写入:
/etc/profile
或
~/.bashrc
修改内核参数(对所有 TCP 连接有效):
sysctl -w net.ipv4.tcp_keepalive_time=600
| 需求 | 方法 |
|---|---|
| 客户端连接超时 | timeout / nc -w |
| 服务端空闲断开 | xinetd timeout |
| 登录后无操作断开 | TMOUT |
| TCP 层超时 | tcp_keepalive |
如果你能说明是 客户端还是服务器、telnetd 还是 xinetd,我可以给你更精确的配置示例。