우분투 서버 16을 사용합니다. 내 컴퓨터에 SCTP 포트가 열려 있고 이를 찾아서 종료해야 합니다(재부팅하지 않고).
lsof
SCTP 소켓은 표시되지 않고 TCP 및 UDP만 표시됩니다.
나는 이러한 모든 네트워크 유틸리티를 보고 있는데 그러한 오래된 표준에 대한 SCTP 지원은 거의 없습니다. netstat
최첨단 네트워킹 도구를 구축하여 SCTP를 사용합니다 .여기에서. sudo netstat --sctp -tulpn
열려 있는 SCTP 연결 중 일부를 표시하지만 이를 소유한 프로세스는 표시하지 않습니다. UDP 및 TCP 소켓의 PID만 표시합니다.
답변1
약간 우회적인 방법이지만 저에게는 효과가 있는 것 같습니다. 누군가가 더 나은 방법을 찾을 수 있기를 바라지만, 처음 생각한 것(ss/netstat)은 SCTP를 인식하지 못하는 것 같습니다.
먼저 다음을 procfs
사용하여 sctp 연결의 inode를 찾습니다.
$ 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
해당 inode(제 예에서는 1895802)를 가져와서 이를 사용하여 lsof
누가 그것을 소유하고 있는지 알아보세요.
$ lsof -R | grep 1895802
socat 8697 2045 root 5u sock 1895802 0t0 SCTP ENDPT: b6d72780 0.0.0.0[123]
보시다시피 저는 socat
123/sctp에 소켓을 생성하곤 했습니다. 8697은 PID입니다.