Soquete redefinido pelo par sempre 2 horas

4

Um cliente se conecta a um servidor usando ssl (openssl) em um soquete tcp.

Se não houver comunicação em andamento, 2 horas depois (mais alguns minutos), o cliente reclamará "Erro de soquete. Conexão redefinida pelo par".

Eu testei isso por vários dias fazendo com que o cliente abrisse uma nova conexão ao receber esse aviso, e o padrão se repete a cada duas horas. Eu olhei as tarefas do cron no cliente e no servidor e não consigo ver nenhuma que possa estar fazendo isso.

Observe que o servidor de soquete (reactphp) não sabe que o soquete foi fechado.

O que pode fazer com que a conexão seja redefinida a cada duas horas? Existem configurações do kernel que podem estar fazendo isso?

    
por user1032531 08.07.2017 / 22:28

1 resposta

5

TCP keepalive. Arranca as conexões se elas não forem usadas depois de 2 horas. Pode ser facilmente alterado. Consulte o link

Em poucas palavras, o ajuste do kernel "tcp_keepalive_time", que é exposto via /proc/sys/net/ipv4/tcp_keepalive_time , pode ser alterado a partir do padrão 7200, conforme necessário.

    
por 08.07.2017 / 23:05

Tags