Linuxで、どのプロセスがSCTPポートを開いているかを確認してください。

Linuxで、どのプロセスがSCTPポートを開いているかを確認してください。

Ubuntuサーバー16を使用してください。マイコンピュータにSCTPポートが開いていて、それを見つけて終了する必要があります(再起動せず)。

lsofSCTPソケットは表示されず、TCPとUDPのみが表示されます。

私はこれらすべてのネットワークユーティリティを見ていますが、そのような古い標準に対するSCTPサポートはほとんどありません。netstat最先端のネットワーキングツールを構築してSCTPを使用してください。ここからsudo netstat --sctp -tulpn開いているSCTP接続の一部を表示しますが、それを所有するプロセスは表示しません。 UDPおよびTCPソケットのPIDのみを表示します。

答え1

少し迂回的な方法ですが、私には効果があるようです。誰かがより良い方法を見つけることを望んでいますが、最初に考えたもの(ss / netstat)はSCTPを認識しないようです。

まず、次のようにprocfssctp 接続の 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です。

関連情報