Telnet を使用して Cisco ルータに接続します。
3分ごとに接続がタイムアウトします。
Telnet セッションのタイムアウトとルータの切断をどのように停止しますか?
私が知っている限り、puttyとSecureCRTは定期的にnullまたはエスケープ文字を送信してセッション(telnetまたはSSH)がタイムアウトするのを防ぎます。
第三者プログラムなしで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
答え1
interact
のドアは、このドアに似たペアのパターンと操作をとるexpect
ことができます。expect
特に、タイムアウトモードを追加してジョブを送信できます。例えば、
interact timeout 10 { send "date\r" }
入力した内容は通常通り送信されますが、10秒間入力しないと文字列とdate
キャリッジリターンが送信されます。文字モードでTelnetを使用している場合は、スペースとバックスペースを順番に送信して接続をアクティブに保つことができます。これにより、入力した行のどの部分も中断されません。
interact timeout 150 { send " \b" }
答え2
telnet
セキュリティ対策として、シスコ側のセッションにはデフォルトのタイムアウトがありますが、Linux側ではそうではありません。
timeouts
TCP keepaliveと混同しないことをお勧めします。これは、コンソール/オペレーターの非アクティブのレイヤー7時間超過です。
ssh
セキュリティ上の理由から、Ciscoルータの代わりにセッションを確立する必要があると言いたいです。telnet
必要に応じてシスコ側で実行できる設定の1つはssh
次のとおりです。
ip ssh timeout 300
の場合、telnet
デフォルトのタイムアウトを次のように変更できます。
r1# configure terminal
r1(config)# line vty
r1(config-line)# exec-timeout 300
またはでタイムアウトを防ぐためにまたはexec-timeout 0
を使用することもできますが、これは良いセキュリティ方法とは見なされません。 。ip ssh timeout 0
telnet
ssh
また、ルーターの他のデフォルト設定(デフォルト)を変更することをお勧めしますhostname
。