Linux:如何知道哪个进程或程序正在向本地端口发送数据?

问题描述

我在 CentOS 服务器上启动了一个侦听 127.0.0.1:3000 的程序。我没有向程序发送任何消息,但它一直在接收数据。我想知道谁在向我的程序发送数据。所以我输入以下命令:

netstat -an | grep 3000

快照输出为:

tcp        0      0 127.0.0.1:3000          0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:3000          127.0.0.1:41960         TIME_WAIT  
tcp        0      0 127.0.0.1:3000          127.0.0.1:41956         TIME_WAIT  
tcp        0      0 127.0.0.1:3000          127.0.0.1:41964         TIME_WAIT  
tcp        1      0 127.0.0.1:41968         127.0.0.1:3000          CLOSE_WAIT 
tcp        0      0 127.0.0.1:3000          127.0.0.1:41952         TIME_WAIT  
tcp        0      0 127.0.0.1:3000          127.0.0.1:41968         FIN_WAIT2 

每次我输入命令时输出都会改变。像 4xxxx 这样的模式中的端口号频繁增加

如果我输入 lsof -nPi tcp:3000输出之一是

COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    76230 xxx   18u  IPv4 130828      0t0  TCP 127.0.0.1:3000 (LISTEN)
node    76230 xxx   20u  IPv4 208468      0t0  TCP 127.0.0.1:3000->127.0.0.1:42072 (ESTABLISHED)

我不知道这些 4xxxx 数字代表什么。就我而言,如何知道谁在向 127.0.0.1:3000 发送数据?

解决方法

您有一个 PID 76230,有了它您可以通过

了解进程名称
$ ps -p 76230 -o comm=

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...