网络端口打开,但没有附加进程?

Gar*_*son 25 networking linux nagios netstat opsview

我在打开网络端口时遇到了奇怪的情况。我的主要问题是,为什么没有与开放 TCP 端口关联的程序:

netstat -ln --program
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      -  
Run Code Online (Sandbox Code Playgroud)

对于我的特定情况,应该有一个 nrpe 守护程序(opsview 安装)侦听端口 5666,但没有运行 nrpe 守护程序。如果我尝试启动它,它会立即退出。

lsof -i :5666也不显示任何输出。我的系统上没有运行 (x)inetd。

更新

是的,我以 root 身份运行这些命令。Telnet 可以,但从来没有任何响应。

经过进一步调查,我发现了一个内核错误dmesg:这是一个运行较旧内核的 EC2 实例(实际上是其中几个)(2.6.16 显然不稳定)。停止崩溃的修复方法是升级内核

看起来内核崩溃的方式导致进程消失并保持端口打开。

Kyl*_*ndt 28

您是否以 root 或 sudo 身份运行 netstat 和 lsof?注意最后一列:

netstat -ln --program
tcp        0      0 192.168.21.1:53         0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -

sudo netstat -ln --program
tcp        0      0 192.168.21.1:53         0.0.0.0:*               LISTEN      2566/named      
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      2566/named      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3125/sshd
Run Code Online (Sandbox Code Playgroud)

从 netstat 联机帮助页:

您还需要超级用户权限才能查看有关您不拥有的套接字的信息。

你怎么知道没有人跑?如果端口正在使用中,它会立即退出并显示“正在使用的套接字”错误。当你 telnet 到端口时会发生什么?

telnet localhost 5666
Run Code Online (Sandbox Code Playgroud)


Tho*_*mas 6

内核打开的端口不会显示程序名称。我想到了一些 NFS 和 OCFS 的东西。也许是这样的?

或者它可能是内核错误。检查 OOPS 和 BUG 的内核日志。


小智 6

root 用户身份执行“netstat --tcp --udp --listening --program” 。否则你不会给出PID/程序名称

然后使用 kill -9 PID 命令