在初始化时运行命令并在出现错误时重新启动

在初始化时运行命令并在出现错误时重新启动

我通过 SSH 代理在我的 PC 上访问互联网,因此每次我都需要执行ssh -L PORT:SERVER:PORT LOGIN@SERVER然后输入密码。每次网络故障或重新连接后,都必须再次执行此命令。我已经厌倦了它并寻找一种自动执行此操作的方法:首先在启动后运行此命令(这似乎不是问题 - 将此命令放在某个 init 文件中即可),然后在每次网络故障时重新运行它(如果可能,然后输入密码)。这可能吗?如何做?

Linux 操作系统 (Debian)

答案1

您可以使用 autossh,使用 autossh 命令监视连接并在需要时重新连接。(确保用 autossh 替换 ssh)

autossh -L PORT:SERVER:PORT LOGIN@SERVER

这是 Linux 手册页: http://linux.die.net/man/1/autossh

答案2

当然,如果你使用 SSH,我强烈建议你使用公钥认证为了不必每次都输入密码。

你可以使用无密码钥匙,只要你限制此键在远程服务器上(通过$HOME/.ssh/authorized_keys),这样即使您的计算机被盗,也不会允许任何人完全访问您的代理服务器。

您可以从以下位置启动此 autossh/etc/network/if-up.d/并杀死它/etc/network/if-down.d/。如果无论连接状态如何都始终启动它,则需要导出AUTOSSH_GATETIME=0,这样第一次失败就不会阻止 autossh 继续尝试。

我想知道为什么 NetworkManager 中没有这种常见的设置。

相关内容