Dit is een netwerkprobleem, maar ik denk dat de oplossing te vinden is met wat (meer) kennis (dan ik heb) van initscripts. Daarom (en omdat de term autossh nul resultaten levert in de search en ik bij networking dus zeer waarschijnlijk niet meer expertise hieromtrent ga vinden) zet ik mijn vraag hier.
Ik heb een machine, Theo, die achter een NAT router zit. Deze router is van een sukkel (ik kan het niet anders zeggen) die geen poort kan forwarden voor me. Om de machine toch bereikbaar te laten zijn laat ik Theo met autossh een reverse shell verbinding maken naar een wel bereikbare machine (Linda). De boel is zo opgezet dat deze verbinding opgezet kan worden zonder dat er een wachtwoord hoeft te worden ingevoerd.
Ik log vervolgens zelf in op Linda en doe dan:
Ik kan dus via Linda inloggen op Theo. Ok. Als de reverse shell verbinding wegvalt zorgt autossh dat deze weer herstelt wordt. Als ik Linda reboot gebeurt dit idd ook.
Het probleem is alleen dat het netwerk waar Linda aan hangt (met dank aan de firma Casema) met grote regelmaat 'problemen' heeft. Na zo'n storing wil de reverse shell ondanks autossh weleens onbereikbaar worden. Ik heb diverse instellingen van autossh geprobeerd (met name met en zonder monitor-poort), dit bood geen soelaas.
Wanneer de verbinding is weggevallen en ik reboot Linda is deze hierna meteen terug. Dit is alleen niet een ideale oplossing: Linda staat altijd aan en dat is niet voor niets zo. Ik heb dingen geprobeerd als:
Hiermee krijg ik mijn autossh verbinding echter niet terug! Ook valt me op dat zelfs de ssh daemon stoppen niet genoeg is om de verbinding die ik dan zelf naar Linda heb weg te laten vallen. Wat ik niet helemaal begrijp, maar dat terzijde.
Ook is er na een storing op Linda geen ssh proces te zien dat ik kan killen om autossh te forceren opnieuw te verbinden. Wanneer de verbinding er wel is en ik kill het juiste proces zie ik dat er meteen een nieuwe verbinding wordt gemaakt.
Kent iemand een manier 'short of' rebooten die ik kan gebruiken om alle ssh clients te schoppen (ook die zich in limbo bevinden) zodat autossh opnieuw verbinding maakt?
Ik heb een machine, Theo, die achter een NAT router zit. Deze router is van een sukkel (ik kan het niet anders zeggen) die geen poort kan forwarden voor me. Om de machine toch bereikbaar te laten zijn laat ik Theo met autossh een reverse shell verbinding maken naar een wel bereikbare machine (Linda). De boel is zo opgezet dat deze verbinding opgezet kan worden zonder dat er een wachtwoord hoeft te worden ingevoerd.
code:
1
| autossh -M 0 -oServerAliveInterval=15 -oSetupTimeOut=15 -q -f -NR 3333:localhost:22 mijnlogin@linda |
Ik log vervolgens zelf in op Linda en doe dan:
code:
1
| ssh localhost -p 3333 |
Ik kan dus via Linda inloggen op Theo. Ok. Als de reverse shell verbinding wegvalt zorgt autossh dat deze weer herstelt wordt. Als ik Linda reboot gebeurt dit idd ook.
Het probleem is alleen dat het netwerk waar Linda aan hangt (met dank aan de firma Casema) met grote regelmaat 'problemen' heeft. Na zo'n storing wil de reverse shell ondanks autossh weleens onbereikbaar worden. Ik heb diverse instellingen van autossh geprobeerd (met name met en zonder monitor-poort), dit bood geen soelaas.
Wanneer de verbinding is weggevallen en ik reboot Linda is deze hierna meteen terug. Dit is alleen niet een ideale oplossing: Linda staat altijd aan en dat is niet voor niets zo. Ik heb dingen geprobeerd als:
code:
1
2
| ifdown eth0; sleep 30; ifup eth0 /etc/init.d/ssh stop; sleep 30; /etc/init.d/ssh start |
Hiermee krijg ik mijn autossh verbinding echter niet terug! Ook valt me op dat zelfs de ssh daemon stoppen niet genoeg is om de verbinding die ik dan zelf naar Linda heb weg te laten vallen. Wat ik niet helemaal begrijp, maar dat terzijde.
Ook is er na een storing op Linda geen ssh proces te zien dat ik kan killen om autossh te forceren opnieuw te verbinden. Wanneer de verbinding er wel is en ik kill het juiste proces zie ik dat er meteen een nieuwe verbinding wordt gemaakt.
Kent iemand een manier 'short of' rebooten die ik kan gebruiken om alle ssh clients te schoppen (ook die zich in limbo bevinden) zodat autossh opnieuw verbinding maakt?
Windows is exiting. Is this OK?