Есть в другом городе компьютер с 3G модемом вместо интернета.
Нужно сделать так, чтобы к нему можно было подключиться с компьютера имеющего внешний IP.
На удаленном компьютере при старте подключается интернет и запускается autossh:
#!/bin/sh
export AUTOSSH_PORT=2223
export AUTOSSH_GATETIME=0
autossh \
-N user@example.com \
-R 2222:localhost:22
Пока все нормально, можно подключаться на example.com:
ssh user@127.0.0.1 -p 2222
.
Но есть проблема: иногда соединение обрывается, и порт 2222 на example.com остается открытым.
Пока замечаю и убиваю процесс autossh пробует переподключится, но так как порт занят тупит:
autossh[22724]: port set to 0, monitoring disabled
autossh[22724]: checking for grace period, tries = 0
autossh[22724]: starting ssh (count 1)
autossh[22724]: ssh child pid is 22727
autossh[22724]: check on child 22727
autossh[22724]: set alarm for 600 secs
autossh[22727]: execing /usr/bin/ssh
Warning: remote port forwarding failed for listen port 2222
Виснет — не завершается и не предпринимает попыток подключится к этому порту еще раз.
Приходится звонить по телефону и просить перезагрузить компьютер.
Как можно решить проблему?
autossh, ssh