É possível checar por blips na internet usando túneis SSH?

0

Então, basicamente no trabalho, estamos perdendo conectividade com a Internet por apenas alguns segundos por vez, o que é suficiente para matar nossos túneis SSH, matar nossas chamadas VoIP, etc. Eu tenho um cronjob configurado com meu próprio script para detectar interrupções maiores (com duração maior que um minuto), mas não consigo detectar essas interrupções de segundos.

Normalmente, durante o dia, tenho um túnel SSH conectado a um de nossos servidores. Essa conexão dura a maior parte do dia, por isso estou pensando em criar um script que cria outra conexão com o mesmo servidor, logs quando a conexão com o servidor é interrompida e, em seguida, restabelece a conexão para log adicional. Isso é possível com o bash básico?

    
por NobleUplift 11.12.2014 / 19:52

2 respostas

1

Existem várias maneiras de neutralizar a perda de conectividade para sessões ssh.

Primeiro, você pode querer definir as opções ServerAliveInterval, ClientAliveInterval e ClientAliveCountMax. ServerAliveInterval é o número de segundos que o cliente aguardará antes de enviar um pacote nulo para o servidor (para manter a conexão ativa), um valor de 60 é típico. ClientAliveInterval é o número de segundos que o servidor aguardará antes de enviar um pacote nulo ao cliente. Por fim, ClientAliveCountMax é o número de ClientAliveInterval que o cliente pode permanecer em silnet antes que a conexão seja interrompida; o padrão é 3, significando três vezes o lapso de tempo ClientAliveInterval.

Como alternativa, você pode usar Mosh , o shell para celular, que ...

allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes. Mosh is a replacement for SSH. It's more robust and responsive, especially over Wi-Fi, cellular, and long-distance links.Mosh is free software, available for GNU/Linux, FreeBSD, Solaris, Mac OS X, and Android.

E, em seguida, você pode usar autossh em vez de ssh:

autossh - Automatically restart SSH sessions and tunnels

Qual caminho você vai depender principalmente dos gostos. Quanto a mim, eu uso autossh para túneis que eu gostaria de ter permanentemente para cima, especialmente túneis reversos; Eu uso mosh para conexões verdadeiramente desastrosas, como quando eu ssh'ing em meu laboratório de um avião ou um carro. Para todos os outros casos, uma escolha criteriosa dos parâmetros acima para o openssh será: por exemplo, meu arquivo .ssh / config contém as seguintes linhas:

 Host * 
    ServerAliveInterval 60
    IdentitiesOnly yes

e da mesma forma para os servidores, no arquivo / etc / sshd_config .

E, a propósito, para monitorar sua conexão por longos períodos de tempo, você pode usar mtr (= My TraceRoute), uma combinação inteligente de traceroute e ping que fará um traceroute a cada segundo (padrão = 1 segundo) para um determinado site, e atualizará sem problemas as estatísticas de pings bem-sucedidos, dando a você a oportunidade de estabelecer pelo menos a fração média de tempo de atividade, mas não sua distribuição.

    
por 12.12.2014 / 16:09
0

Eventualmente, eu fiz alguns ajustes no meu script para que ele seja executado continuamente e comece a registrar quando ele perde a conexão, em vez de procurar uma conexão perdida:

link

Mas, na verdade, só precisamos mudar de provedor.

    
por 20.06.2016 / 04:48