Monitorar conexões Nextcloud com netstat

0

Não consigo detectar conexões de entrada dos clientes de sincronização do Nextcloud via netstat no meu servidor.

Eu tenho um servidor na minha LAN, executando o Nextcloud com o MySQL em contêineres docker. Eu uso vários clientes NextCloud (Linux, macOS e iOS), tudo está funcionando bem.

Eu quero verificar se os clientes estão conectados ao meu servidor no nível do host. Com o netstat, posso ver se um cliente está conectado por meio da interface da Web do Nextcloud, mas não reconheço as conexões do cliente de sincronização Nextcloud.

Alguém sabe que o parâmetro netstat está faltando? Qualquer dica é bem vinda.

BR Stefan

    
por user2553020 24.08.2018 / 13:45

1 resposta

1

As conexões são provavelmente DNAT para os contêineres. Isso significa que o host agora está agindo como um roteador entre "fora" e os contêineres. netstat não exibirá essas conexões. Você precisará de ferramentas adicionais para os fluxos ausentes.

Uma dessas ferramentas é conntrack , que consulta conntrack sobre conexões rastreadas. Usando este comando com a opção -j :

conntrack -L -j

exibirá apenas conexões NAT, mostrando os fluxos atuais ativos estabelecidos entre os contêineres e o exterior e complementando a saída de netstat .

Se você quiser uma saída semelhante a netstat , tente usar se disponível netstat-nat que mais ou menos depende do mesmo mecanismo.

Um outro método, para executar em um loop, seria consultar o Docker (usando docker diretamente no host) sobre o pid principal de cada contêiner e usar o resultado para acessar a rede do contêiner, para executar uma% usualnetstat . Isso tem a vantagem de exibir determinados estados que não aparecem mais com conntrack (como CLOSE_WAIT , geralmente um sintoma de problemas em um aplicativo).

Dado um contêiner do Docker em execução chamado containername , isso deve obter todas as suas conexões de rede, conforme visto de seu próprio ponto de vista, mesmo que o próprio contêiner não tenha nenhum comando útil para isso:

nsenter --target $(docker inspect --format '{{.State.Pid}}' containername) --net netstat -utn
    
por 26.08.2018 / 03:05