Usando o Ubuntu Server 16. Algo na minha máquina está com uma porta SCTP aberta e preciso encontrá-la e eliminá-la (sem reinicializar).
lsof
não mostra soquetes SCTP, apenas TCP e UDP.
Estou examinando todos esses utilitários de rede e o suporte SCTP é surpreendentemente escasso para um padrão tão antigo. Eu comecei netstat
a trabalhar com SCTP construindo ferramentas de rede de última geraçãodaqui. sudo netstat --sctp -tulpn
mostra algumas conexões SCTP abertas, mas não diz qual processo as possui. Mostra apenas os PIDs para soquetes UDP e TCP.
Responder1
Uma espécie de rotatória hacky, mas parece funcionar para mim. Esperando que alguém encontre uma maneira melhor, mas meus primeiros pensamentos (ss/netstat) não parecem reconhecer o SCTP.
Primeiro, use procfs
para encontrar o inode da conexão sctp:
$ cat /proc/net/sctp/eps
ENDPT SOCK STY SST HBKT LPORT UID INODE LADDRS
b6d72780 a8903800 2 10 48 123 0 1895802 0.0.0.0
Pegue esse inode (1895802 no meu exemplo) e use-o lsof
para descobrir quem o possui:
$ lsof -R | grep 1895802
socat 8697 2045 root 5u sock 1895802 0t0 SCTP ENDPT: b6d72780 0.0.0.0[123]
Como você pode ver, eu estava usando socat
para fazer um soquete escutando em 123/sctp. 8697 é o pid.