開いているポートの原因となっているプログラムを知るにはどうすればよいですか?

開いているポートの原因となっているプログラムを知るにはどうすればよいですか?

ss -ltunUbuntu 18.04 でコマンドを実行すると、次のようになります。

Netid        State          Recv-Q         Send-Q                  Local Address:Port                   Peer Address:Port         
udp          UNCONN         0              0                             0.0.0.0:55656                       0.0.0.0:*            
udp          UNCONN         0              0                             0.0.0.0:631                         0.0.0.0:*            
udp          UNCONN         0              0                             0.0.0.0:857                         0.0.0.0:*            
udp          UNCONN         0              0                             0.0.0.0:5353                        0.0.0.0:*            
udp          UNCONN         0              0                       127.0.0.53%lo:53                          0.0.0.0:*            
udp          UNCONN         0              0                             0.0.0.0:68                          0.0.0.0:*            
udp          UNCONN         0              0                             0.0.0.0:111                         0.0.0.0:*            
udp          UNCONN         0              0                                [::]:857                            [::]:*            
udp          UNCONN         0              0                                [::]:33678                          [::]:*            
udp          UNCONN         0              0                                [::]:5353                           [::]:*            
udp          UNCONN         0              0                                [::]:111                            [::]:*            
tcp          LISTEN         0              128                           0.0.0.0:111                         0.0.0.0:*            
tcp          LISTEN         0              128                     127.0.0.53%lo:53                          0.0.0.0:*            
tcp          LISTEN         0              5                           127.0.0.1:631                         0.0.0.0:*            
tcp          LISTEN         0              128                         127.0.0.1:9050                        0.0.0.0:*            
tcp          LISTEN         0              128                              [::]:111                            [::]:*            
tcp          LISTEN         0              5                               [::1]:631                            [::]:*  

たとえば、ポート 111 が何に使用され、なぜ開いているのかわからないので、次のコマンドを実行します。

$ grep 111 /etc/services
sunrpc      111/tcp     portmapper  # RPC 4.0 portmapper
sunrpc      111/udp     portmapper
dicom       11112/tcp
kx      2111/tcp            # X over Kerberos

今はそれが 用であることはわかっていますsunrpcが、どのプログラムが原因なのか、またそれをどのように閉じることができるのか (閉じるべきなのか) がまだわかりません。 実行するとsystemctl list-socketsいくつかのユニットが表示されますが、どのポートを管理しているのかはわかりません。

答え1

-pにオプションを追加するとss、ポートを使用しているプロセスが一覧表示されます。

ss -ultnp

すべてのプロセスを表示するには、root として実行する必要があります。

sudo ss -ultnp

関連情報