Monitorar conexões Nextcloud com o netstat


0

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

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

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 via interface de usuário da web Nextcloud, mas não reconheço conexões do cliente de sincronização Nextcloud.

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

BR Stefan

Respostas:


1

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

Uma dessas ferramentas é a conntrackque 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 ativos estabelecidos atualmente entre os contêineres e os externos e complementando a saída de netstat.

Se você deseja uma saída semelhante à que netstatvocê pode tentar, se disponível, netstat-natmais ou menos depende do mesmo mecanismo.

Um outro método, para executar em um loop, seria consultar o Docker (usando dockerdiretamente no host) sobre o pid principal de cada contêiner e usar o resultado para acessar a rede do contêiner, para executar um procedimento habitual netstat. Isso tem a vantagem de exibir determinados estados que não são mais exibidos com o conntrack (como CLOSE_WAITgeralmente um sintoma de problemas em um aplicativo).

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

nsenter --target $(docker inspect --format '{{.State.Pid}}' containername) --net netstat -utn
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.