Estou operando alguns daemons de servidor que usam o udp para se comunicar com grande número de clientes. Como localizo e listo todas as "conexões" udp ativas que estão conversando com os servidores para estimar o número de clientes ativos conectados aos daemons do servidor? Eu não conseguia pensar em uma maneira fácil de fazer isso além de cheirar os pacotes com tshark ou tcpdump e olhar o ip de origem dos pacotes udp que vão para os daemons do servidor e, sim, eu sei que o UDP é um protocolo sem conexão e sem estado.
linux
networking
udp
packet-analyzer
pedra
fonte
fonte
sudo lsof -iUDP
Respostas:
O UDP é um protocolo sem estado - portanto, nenhum estado.
Para ver o que está ouvindo o UDP:
fonte
Você pode registrar todas as conexões UDP usando o iptables:
Talvez você queira limitá-lo a algumas portas. Verifique a documentação aqui ou, de preferência
man iptables
,.fonte
No Linux, supondo que o iproute2 esteja instalado, você pode executar o comando ss para extrair soquetes udp da seguinte maneira:
Ou todos os soquetes UDP, com o processo associado:
Aqui estão exemplos adicionais que você pode usar com ss, incluindo obter conexões por processo.
http://www.cyberciti.biz/files/ss.html
fonte
ss
apenas exibe soquetes UDP e não conexão .ss -pa
ess -upa
no exemplo? Metade deve ser excluída?Como outros usuários mencionaram, o UDP não possui conexão, portanto o estado não é rastreado nos locais padrão que você pode procurar.
Um método que você pode usar é simplesmente configurar algumas regras simples do netfilter que usam a
--state
opção Isso forçará o netfilter a rastrear o estado relacionado ao UDP. Depois de configurar as regras, você poderá usar uma ferramenta como o conntrack para examinar a tabela de estados do netfilter. Aqui está, por exemplo, como é o sistema. Você pode ver que existem alguns sistemas que estão frequentemente se comunicando com o udp / 1194 (OpenVPN).Suas regras de filtro de rede podem ser tão simples quanto isso.
fonte
inspirado por esta resposta , descobri que a seguinte
ss
sintaxe funciona para mim:... porque "ouvir" soquetes UDP são como soquetes TCP "fechados".
fonte