Linux에서 어떤 프로세스가 SCTP 포트를 열었는지 확인하세요.

Linux에서 어떤 프로세스가 SCTP 포트를 열었는지 확인하세요.

우분투 서버 16을 사용합니다. 내 컴퓨터에 SCTP 포트가 열려 있고 이를 찾아서 종료해야 합니다(재부팅하지 않고).

lsofSCTP 소켓은 표시되지 않고 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]

보시다시피 저는 socat123/sctp에 소켓을 생성하곤 했습니다. 8697은 PID입니다.

관련 정보