我使用 telnet 连接到 Cisco 路由器。
连接每 3 分钟超时一次。
如何阻止我的 telnet 会话由于超时而与路由器断开连接。
我了解 putty 和 SecureCRT 可以定期发送空字符或转义字符以阻止会话(telnet 或 SSH)超时。
如何在没有 3rd 方程序的 Linux 上执行此操作?启动终端时,我使用以下脚本作为启动脚本:
#!/usr/bin/expect -f
spawn telnet <Router IP Address>
expect -re "ogin: "
send "*******\n"
expect -re "assword:"
send "***********\n"
sleep 2
expect "Router>"
interact
的
interact
语句expect
可以采取成对的模式和动作,有点像expect
语句。特别是,您可以添加超时模式和发送操作。例如,会像往常一样发送您输入的内容,但如果您在 10 秒内不输入,它将发送字符串
date
和回车。如果您使用 telnet,在字符模式下,您可以通过简单地发送一个空格和一个退格来保持连接,这不会破坏您已经输入的任何部分行:您
telnet
在 Cisco 端的会话中设置了默认超时,而不是在 Linux 端作为安全措施。timeouts
我建议不要将那些与 TCP keepalive混淆。它们是控制台/人工操作员不活动的第 7 层超时。出于安全考虑,我会说您应该设置
ssh
会话而不是Cisco 路由器。telnet
如果您选择,您可以在 cisco 端执行的配置之一
ssh
是:至于
telnet
,您可以将默认超时更改为:您也可以使用
exec-timeout 0
or来避免orip ssh timeout 0
中的超时,但这并不是一个好的安全实践。.telnet
ssh
我还建议更改路由器的其他默认配置,即 default
hostname
。