netstat 显示一个没有进程的 ESTABLISHED 连接

Mat*_*teo 6 networking netstat

我正在调试 postfix 的一些问题。当我建立连接时,没有任何反应并netstat显示:

$ netstat -anp
...
tcp        0      0 129.132.202.106:25          129.132.179.232:60154       ESTABLISHED -                   
Run Code Online (Sandbox Code Playgroud)

为什么缺少流程?

lsof 不显示已建立的连接

$ lsof -n -i :25
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
master   6139    root   11u  IPv4 472858      0t0  TCP 127.0.0.1:smtp (LISTEN)
master  20033    root   11u  IPv4 523921      0t0  TCP 129.132.202.106:smtp (LISTEN)
smtpd   20042 postfix    6u  IPv4 523921      0t0  TCP 129.132.202.106:smtp (LISTEN)
Run Code Online (Sandbox Code Playgroud)

交通:

11:26:44.182443 IP 129.132.179.232.59517 > 129.132.202.106.25: S 3522488764:3522488764(0) win 65535 <mss 1460,nop,wscale 5,nop,nop,timestamp 73851028 0,sackOK,eol>
11:26:44.182831 IP 129.132.202.106.25 > 129.132.179.232.59517: S 3950923498:3950923498(0) ack 3522488765 win 5792 <mss 1460,sackOK,timestamp 18832449 73851028,nop,wscale 7>
11:26:44.183150 IP 129.132.179.232.59517 > 129.132.202.106.25: . ack 1 win 4117 <nop,nop,timestamp 73851029 18832449>
Run Code Online (Sandbox Code Playgroud)

然后仅此而已

我如何找出聆听过程不存在的原因?如果我重视stracemaster什么也看不见了。在尝试连接期间没有任何活动。

phe*_*mer 5

您需要netstat使用sudo.

没有 root 权限,netstat无法在其他用户的进程中闲逛(-在输出的最后一列中用 a 表示),因此该-p选项只会标识您拥有的进程,而该进程显然不属于您。

所以解决方案简单地变成:

sudo netstat -apn
Run Code Online (Sandbox Code Playgroud)

  • 即使以 root 身份运行并使用 `-t` 也不会显示进程(只是 `-`) (2认同)