SSH 터널링이 켜져 있는지 확인하는 스크립트 작성

SSH 터널링이 켜져 있는지 확인하는 스크립트 작성

다음과 같이 SSH 터널을 설정했습니다.

ssh -N -L 1105:remote.server:25 office-machine&

예를 들어 1분에 한 번(크론 작업을 사용하여 수행할 수 있음) 확인을 설정하는 스크립트를 작성하여 이 연결이 설정되어 있는지 확인하고, 그렇지 않으면 연결을 설정합니다(VPN이 켜져 있는 경우). ).

SSH 터널 확인을 수행하려면 어떻게 해야 합니까?

미리 감사드립니다.

추신: 나는 노력했다

autossh -N -L 1105:remote.server:25 office-machine&

하지만 종료됩니다. 옵션이 올바른 것 같습니다. 실제로 맨페이지/도움말에는 -N 및 -L 옵션이 없고 -f 및 -M 옵션만 있음을 나타냅니다.

답변1

이를 위해 사용할 수 있습니다 autossh. 인용우분투 맨페이지:

 autossh is a program to start a copy of ssh and monitor it, restarting it as necessary
 should it die or stop passing traffic.

 The original idea and the mechanism were from rstunnel (Reliable SSH Tunnel). With version
 1.2 of autossh the method changed: autossh uses ssh to construct a loop of ssh forwardings
 (one from local to remote, one from remote to local), and then sends test data that it
 expects to get back. (The idea is thanks to Terrence Martin.)

따라서 추가 모니터링 포트를 지정해야 합니다 autossh. N과 N+1이 모두 사용 가능하도록 일부 포트 N을 선택하고 옵션과 함께 사용하십시오 -M. 예:

autossh -M 20000 -N -L 1105:remote.server:25 office-machine

를 사용하여 모니터링을 비활성화할 수도 있습니다 -M 0. Debian 기반 시스템에서는 autossh자동으로 모니터링할 무료 포트를 선택할 수 있습니다.


VPN 연결이 끊어지면 autosshSSH 연결이 더 이상 활성화되지 않음을 모니터링 포트를 통해 감지한 다음 다시 시작해야 합니다. 이후:

Continued failures
 If the ssh connection fails and attempts to restart it fail in quick succession, autossh
 will start delaying its attempts to restart, gradually backing farther and farther off up to
 a maximum interval of the autossh poll time (usually 10 minutes).  autossh can be "prodded"
 to retry by signalling it, perhaps with SIGHUP ("kill -HUP").

관련 정보