我正在运行一个RedHat 5.5
,我想知道如何识别一个进程的端口。
这是的输出netstat
,我正在尝试查找与端口相关的进程35670
:
$ netstat -tulnp
tcp 0 0 0.0.0.0:35670 0.0.0.0:* LISTEN -
我尝试了以下方法将相关进程获取到此端口,但无济于事:
$ lsof -nl | grep TCP
$ fuser 35670/tcp
这最终对我有用。
$ rpcinfo -p
100021 3 tcp 35670 nlockmgr
如果不执行上述命令,您如何检测到35670
与该端口相关的内容nlockmgr
。
奇怪的是,nlockmgr
当我这样做时它没有出现:
$ ps aux
答案1
答案2
您必须netstat -tulnp
以 root 身份执行。否则您将获得-
而不是进程名称。
手册页上的内容如下:
PID/Program name
Slash-separated pair of the process id (PID) and process name of the process that owns the socket. --program causes this column
to be included. You will also need superuser privileges to see this information on sockets you don't own. This identification
information is not yet available for IPX sockets.
有一个例外:portmapper 请参阅这
答案3
您可以使用以下命令代替 netstat ss
:
[mvutcovi@mvutcovi-lap ~]$ sudo ss -tulnp
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 192.168.122.1:53 0.0.0.0:* users:(("dnsmasq",pid=1698,fd=5))
udp UNCONN 0 0 0.0.0.0%virbr0:67 0.0.0.0:* users:(("dnsmasq",pid=1698,fd=3))
udp UNCONN 0 0 0.0.0.0:68 0.0.0.0:* users:(("dhclient",pid=1980,fd=7))