O ss
comando (do iproute2
conjunto de ferramentas que vem como uma alternativa mais recente ao netstat
) tem em suas --help
opções as seguintes
-0, --packet display PACKET sockets
-t, --tcp display only TCP sockets
-S, --sctp display only SCTP sockets
-u, --udp display only UDP sockets
-d, --dccp display only DCCP sockets
-w, --raw display only RAW sockets
-x, --unix display only Unix domain sockets
Qual é exatamente a distinção feita aqui entre RAW
e UNIX
soquetes de domínio?
E o que realmente são os PACKET
soquetes?
Um soquete bruto é um soquete de rede (
AF_INET
ouAF_INET6
geralmente). Ele pode ser usado para criar pacotes IP brutos que podem ser usados para solução de problemas ou para implementar sua própria implementação de TCP sem usarSOCK_STREAM
:Ferramentas como
nmap
soquetes brutos usam soquetes brutos para interromper o handshake TCP após o inicialSYN
,SYN-ACK
, pois a conexão TCP nunca é completamente estabelecida. Como um soquete de rede, ele usasockaddr_in
para endereços.No entanto, a criação de soquetes brutos geralmente é restrita. Apenas processos privilegiados podem criá-los.
Um soquete unix, por outro lado, não é um soquete de rede (
AF_UNIX
). É um soquete local :Ele usa outra estrutura de endereço (
sockaddr_un
). É uma maneira comum de implementar comunicação bidirecional em um único sistema para comunicação entre processos sem passar pela camada de rede.E soquetes de pacote são pacotes brutos no nível do driver :
Os outros soquetes atuam na camada de rede (OSI Layer 3) ou superior. Nesse ponto, você está falando diretamente com o driver da sua interface de rede.
Para obter mais informações , consulte
socket(2)
,ip(7)
,packet(7)
,raw(7)
esocket(7)
.unix(7)