在 Linux 下,telnet 本身的超时设置有几种不同层面,下面按常见场景给你总结:
timeout 命令(最常用)timeout 5 telnet 192.168.1.1 23
telnet 本身不能直接设连接超时参数,但可以通过:
telnet -e ''
配合 timeout 使用,效果最好。
示例:
timeout 3 telnet 10.0.0.1 23 < /dev/null
这是 telnet server 的行为,不是客户端能控制的。
/etc/profileexport TMOUT=300
如果是 xinetd 管理 telnet:
# /etc/xinetd.d/telnet
service telnet
{
...
timeout = 60
}
重启:
systemctl restart xinetd
telnet 是交互式工具,不适合脚本。推荐替代方案:
nc(netcat)timeout 5 bash -c 'exec 3<>/dev/tcp/192.168.1.1/23; cat <&3'
expectset timeout 5
spawn telnet 192.168.1.1
expect {
timeout { puts "超时"; exit 1 }
"login:"
}
| 需求 | 推荐方式 |
|---|---|
| 连接超时 | timeout telnet |
| 登录后空闲断开 | TMOUT / xinetd |
| 脚本自动化 | nc / expect |
| 更稳定方案 | 放弃 telnet,用 ssh |
如果你能说一下 具体使用场景(人工登录?脚本?设备?),我可以给你更精确的命令。