我遇到了一个奇怪的情况,一个开放的网络端口。我的主要问题是,为什么不存在与开放的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 - 对于我的具体情况,应该有一个nrpe守护进程(opsview install)监听端口5666,但是没有运行nrpe守护进程。如果我试图启动它,它就会立即退出。
lsof -i :5666也没有显示任何输出。我的系统上没有运行(x)inetd。
更新
是的,我是以root的身份运行这些命令的。Telnet是可以的,但从来没有任何回应。
经过进一步研究,我在dmesg中发现了一个内核错误:这是一个运行旧内核的EC2实例(实际上是其中的几个) (2.6.16显然是不稳定的)。阻止坠机的方法是升级内核。
看起来,内核崩溃的方式导致进程离开并使端口处于打开状态。
发布于 2009-08-09 16:58:16
内核打开的端口不会显示出程序名。一些NFS和OCFS的东西出现在脑海中。也许是这样的?
或者可能是个内核错误。检查内核日志中的OOPS和BUG。
发布于 2009-08-07 14:50:43
您运行netstat和lsof作为根还是使用sudo?请注意最后一栏:
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来自netstat命令页:
您还需要超级用户特权才能查看您不拥有的套接字上的此信息。
你怎么知道没有人在跑?如果端口正在使用,那么它将立即退出,同时出现“套接字正在使用”的错误。当你打电话到港口时会发生什么?
telnet localhost 5666发布于 2012-08-13 14:38:24
以root用户身份执行'netstat --tcp --udp --侦听--程序‘。其他明智的是,它不会给PID/程序名
然后使用kill -9 PID命令。
https://serverfault.com/questions/51499
复制相似问题