![Como fazer download de documentos pagos do Scribd (LATEST)](/f/75b6e272c6bc61c897910cf223e35941.jpg?width=100&height=100)
Sockstat é um utilitário de linha de comando versátil usado para exibir sockets abertos de rede e sistema no FreeBSD. Principalmente, o comando sockstat é instalado por padrão no FreeBSD e é comumente usado para exibir o nome dos processos que abriram uma determinada porta de rede em um sistema FreeBSD.
No entanto, sockstat também pode listar soquetes abertos com base na versão do protocolo (ambas as versões IP), no estado da conexão e em quais portas um daemon ou programa se conecta e escuta.
Leia também: 20 Exemplos úteis de comandos ‘netstat’ para verificar conexões de rede
Ele também pode exibir soquetes de comunicação entre processos, normalmente conhecidos como soquetes de domínio Unix ou IPC. Comando Sockstat combinado com filtro grep ou canalizado utilitário awk prova ser uma ferramenta poderosa para a pilha de rede local.
Ele pode reduzir os resultados de uma conexão aberta com base no usuário que possui o soquete, no descritor de arquivo de um soquete de rede ou no PID do processo que abriu o soquete.
Neste guia, listaremos alguns exemplos de utilização comuns, mas também muito poderosos, do utilitário de rede de linha de comando sockstat no FreeBSD.
Simplesmente executado sem nenhuma opção ou chave, o comando sockstat exibirá todos os sockets abertos em um sistema FreeBSD, conforme ilustrado na imagem abaixo.
# sockstat.
Os valores exibidos na saída sockstat são descritos como:
“??”
a notação implica que o ponto de extremidade do soquete não pôde ser reconhecido ou estabelecido.Executado com o -eu
sinalizador, o comando sockstat exibirá todos os soquetes de escuta abertos na pilha de rede e todos soquetes de domínio unix abertos ou pipes nomeados envolvidos em algum tipo de processamento de dados local no sistema.
# sockstat -l.
Para exibir todos os soquetes abertos para IPv4 protocolo apenas, emita o comando com o -4
sinalizador, conforme sugerido no exemplo abaixo.
# sockstat -4.
Semelhante à versão IPv4, você também pode exibir os soquetes de rede abertos para IPv6 apenas, emitindo o comando conforme mostrado abaixo.
# sockstat -6.
Para exibir soquetes de rede com base apenas em um protocolo de rede especificado, como TCP ou UDP, use o -P
sinalizador, seguido pelo nome do argumento do protocolo.
Os nomes de protocolo podem ser encontrados inspecionando o conteúdo do /etc/protocols Arquivo. Atualmente, o protocolo ICMP não é compatível com a ferramenta sockstat.
# sockstat -P tcp.
# sockstat -P udp.
Encadeie ambos os protocolos.
# sockstat –P tcp, udp.
Se você deseja exibir todos os sockets abertos de IP TCP ou UDP, com base no número da porta local ou remota, use os sinalizadores de comando e a sintaxe abaixo, conforme ilustrado na captura de tela abaixo.
# sockstat -P tcp -p 443 [Mostrar porta TCP HTTPS] # sockstat -P udp -p 53 [Mostrar porta UDP DNS] # sockstat -P tcp -p 443,53,80,21 [Mostrar TCP e UDP]
Para exibir todos os soquetes abertos e conectados, use o -c
bandeira. Conforme mostrado nos exemplos abaixo, você pode listar todos HTTPS sockets conectados ou todos os sockets TCP conectados emitindo os comandos.
# sockstat -P tcp -p 443 -c. # sockstat -P tcp -c.
Para listar todos os soquetes TCP abertos em estado de escuta, anexe o -eu
e -s
sinalizadores, conforme mostrado no exemplo abaixo. Por ser um protocolo sem conexão, o UDP não mantém nenhuma informação sobre o estado da conexão.
Os soquetes UDP abertos não podem ser exibidos usando seu estado, porque o protocolo udp usa datagramas para enviar / receber dados e não tem mecanismo integrado para determinar o estado da conexão.
# sockstat -46 -l -s.
Soquetes de domínio Unix, bem como outras formas de comunicação local entre processos, como pipes nomeados, podem ser exibidos pelo comando sockstat usando o -você
bandeira, conforme mostrado na imagem abaixo.
# sockstat -u.
A saída do comando Sockstat pode ser filtrada por meio de utilitário grep para exibir uma lista de portas abertas por um aplicativo ou comando específico.
Suponha que você queira listar todos os soquetes associados com Nginx servidor da web, você pode emitir o seguinte comando para realizar a tarefa.
# sockstat -46 | grep nginx.
Para exibir apenas os soquetes conectados associados ao servidor da web Nginx, emita o seguinte comando.
# sockstat -46 -c | grep nginx.
Você pode listar todos os soquetes conectados associados com HTTPS protocolo junto com o estado de cada conexão executando o comando abaixo.
# sockstat -46 -s -P TCP -p 443 -c.
Para listar todos os soquetes remotos associados ao protocolo HTTP, você pode executar uma das seguintes combinações de comando.
# sockstat -46 -c | egrep '80 | 443 '| awk '{print $ 7}' | uniq -c | sort -nr. # sockstat -46 -c -p 80,443 | grep -v ADDRESS | awk '{print $ 7}' | uniq -c | sort -nr.
Caso queira saber quantas conexões HTTP são solicitadas por cada endereço IP remoto, emita o comando abaixo. Este comando pode ser muito útil caso você queira determinar se o seu servidor web está sob algum tipo de ataque DDOS. Em caso de suspeitas, você deve investigar os endereços IP com a maior taxa de solicitação.
# sockstat -46 -c | egrep '80 | 443 '| awk '{print $ 7}' | cut -d: -f1 | uniq -c | sort –nr.
Se você configurou um servidor DNS de cache e encaminhamento em suas instalações para atender clientes internos via protocolo de transporte TCP e deseja exibir uma lista de todos os sockets
aberto pelo resolvedor, junto com o estado de cada conexão de soquete, execute o seguinte comando.
# sockstat -46 -P tcp –p 53 -s.
Se não houver tráfego DNS na rede, você pode acionar manualmente uma consulta DNS no soquete TCP do console da máquina local executando o seguinte comando de escavação. Depois, emita o comando acima para listar todos os soquetes do resolvedor.
# dig + tcp www.domain.com @ 127.0.0.1.
Isso é tudo! Juntamente com netstat e comando lsof utilitários de linha, a linha de comando sockstat é um utilitário poderoso usado para adquirir informações de rede e solucionar vários aspectos da pilha de rede do FreeBSD e processos e serviços relacionados à rede.
A contraparte do comando sockstat do FreeBSD no Linux é representada pelo netstat ou o novo WL comando. Acredite ou não, com base no utilitário sockstat, você pode encontrar um aplicativo semelhante desenvolvido para o sistema operacional Android, chamado SockStat - Simple Netstat GUI.