当前位置

关于 expect 执行 ssh socks5 proxy 防断线

这个网上搜索到的方案呢,一般都是弄一个 timeout 60,然后每 60 秒在这个 ssh 通道上发送一个空格过去,以维持 ssh 连接。。。但这个阻止不了网络异常或程序异常而导致的连接断开

于是乎俺把脚本简单的改了一下:

  1. #!/usr/bin/expect
  2. set timeout 60
  3. while {1} {
  4.   spawn /usr/bin/ssh -NCD :8080 <a href="mailto:user@yourserver.com">user@yourserver.com</a>
  5.   expect {
  6.     "password:" { send "password\r" }
  7.   }
  8.   interact {
  9.     timeout 60 { send " " }
  10.     eof { exp_continue }
  11.   }
  12. }

expect 执行一个无穷循环,检查 eof 事件,然后执行 exp_continue

Topic: 

评论

您不知道autossh有维持连接的功能吗...这个实现方法好丑

啊哦,我还真不知道 autossh 这个工具.. 不过这个脚本实现真的很丑吗?还不太会用 expect,呵呵

代理或者登陆服务器都有这个需求,我用下面的方法。
http://www.pgsqldb.org/mwiki/index.php/%E5%A6%82%E4%BD%95%E4%BF%9D%E6%8C...