我们有一个外地办事处,使用 ISP 提供的拨号连接和非公共 IP。
拨入是由 GNOME-PPP 完成的。
当计算机处于连接状态时,我们如何保持与互联网上的服务器的 SSH 连接(带有隧道)打开?
答案1
autossh
是一个可以自动重新连接 SSH 会话的工具(包含在 Ubuntu 存储库中)。它可以通过单独的方式检查数据是否仍在正确传输并重新连接隧道:
这是一个很好的操作方法:
http://pierre.linux.edu/2010/05/setting-up-a-permanent-ssh-tunnel-between-2-servers/
这可以与工具结合daemon
,在后台运行。
完整解决方案:
aptitude install autossh daemon
在/usr/local/bin/autossh
#!/bin/bash
AUTOSSH_POLL=600
AUTOSSH_PORT=20000
AUTOSSH_GATETIME=30
AUTOSSH_LOGFILE=autossh.log
AUTOSSH_DEBUG=yes
AUTOSSH_PATH=/usr/bin/ssh
HOST=example.com
USER=tunnel
autossh -M $AUTOSSH_PORT -N -L ... -R ... $USER@$HOST
必须添加端口转发来代替“...”。实际上,后面的所有内容-M $AUTOSSH_PORT
都是 SSH 参数。
并在开头/etc/rc.local
添加
daemon -n autossh /usr/local/bin/tunnel