lsof不显示build立的TCP连接

在我的系统上,如果我运行一个端口的netstat,它会返回:

$ netstat -nat | grep "60964" tcp 0 0 192.0.0.1:60964 0.0.0.0:* LISTEN tcp 59 0 192.0.0.1:60964 192.0.0.6:46962 ESTABLISHED 

如果我运行lsof

 $ lsof -i4 | grep "60964" process_x 2585 root 189u IPv4 12708 0t0 TCP 192.0.0.1:60964 (LISTEN) 

为什么这里的输出有差别? 为什么不能检测“build立”连接。

谢谢!

编辑:我应该提到我是以root身份运行上述命令。

netstat不同, lsof需要root权限才能打印系统上的所有打开的端口。 虽然lsof manpagebuild议在Linux上安装setuid root,并在BSD和许多其他的Unix上安装setuid root,实际上大多数安装都select不这样做。 (是否应该打开这些权限是另一个问题。)

因此lsof显示当前用户执行的任何进程的连接。 要获得完整的连接列表,请使用root权限运行lsof

你有没有尝试过

 lsof -i TCP -sTCP:ESTABLISHED