我如何知道哪个程序负责开放端口?

我如何知道哪个程序负责开放端口?

在 Ubuntu 18.04 上运行ss -ltun命令后我得到:

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

现在我知道它是 for sunrpc,但我仍然不知道哪个程序负责它以及如何关闭它(我应该关闭它吗?)。运行systemctl list-sockets显示了一些单元,但没有说明它们正在管理哪些端口。

答案1

添加-p选项ss,它将列出使用端口的进程:

ss -ultnp

要查看所有进程,您需要以 root 身份运行它:

sudo ss -ultnp

相关内容