• 幕客老师召集小伙伴
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

netstat显示没有 program name

netstat显示program name

$ netstat -anp
tcp        0      0 0.0.0.0:513                 0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:514                 0.0.0.0:*                   LISTEN      -                   

显示不了PID/Program name?因为这是人家的进程,你当然看不了了。
来su成root,果然能看到了:
# netstat
tcp        0      0 0.0.0.0:513                 0.0.0.0:*                   LISTEN      2571/xinetd         
tcp        0      0 0.0.0.0:514                 0.0.0.0:*                   LISTEN      2571/xinetd

有时候使用root也看不到PID/Program name,这是咋回事?比如:
# netstat
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      -

原来是netstat不够健壮,当socket inode太大的时候就工作不正常了。
解决办法:
1. 重启一下服务器,再启动相关服务,就能看到了——这招没有意义
2. 修改netstat源码,去除对socket inode最大值判断的限制;
3. 使用lsof命令来查看监听在某个端口的进程,如: $ /usr/sbin/lsof -i :端口号

那试一下第三招,果然疗效不错:
# /usr/sbin/lsof -i :80 
COMMAND   PID   USER   FD   TYPE     DEVICE SIZE NODE NAME
httpd     960 apache    3u  IPv4 3240233587       TCP *:http (LISTEN)
httpd    4159 apache    3u  IPv4 3240233587       TCP *:http (LISTEN)

netstat显示没有 program name

Pingbacks已打开。

引用地址

暂无评论

发表评论