Linux使用Lsof命令解决端口占用问题的方法

在Linux Server上通常比较容易出现端口占用问题导致部分程序无法启动的。

例如鸭子哥晚上在Cent OS上配置另一个域名的HTTPS时就出现操作错误导致Nginx无法启动的。

复原一下出现错误的操作步骤:

1、修复网站的配置文件conf添加监听443端口以及证书名称;

2、重启Nginx来使刚刚的配置生效;

3、Nginx重启报错:

/usr/local/nginx/conf/max.lancdn.com.crt failed:No such file or directory

/usr/local/nginx/conf/max.lancdn.com.key failed:No such file or directory

从Nginx报错的信息来看是没有找到证书文件,仔细一看原来是我把证书上传错了位置。

4、将证书文件上传至服务器上正确的位置,再次重启Nginx服务;

5、Nginx再次报错,这次报错的提示是端口已经被使用:

nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)

端口已经被占用的情况下重启Nginx不行了,那么我们需要干掉占用443端口的进程。

我们可以利用Lsof来查看哪些进程正在占用哪些端口,首先当然需要安装Lsof。

执行yum -y install lsof来进行安装,安装后使用lsof -i [端口号]来查看占用的进程。

Linux使用Lsof命令解决端口占用问题的方法

例如我需要查看443端口则使用lsof -i:443结果如下:

ssserver 3773 nobody 4u IPv6 676585596 0t0 TCP *:https (LISTEN)

ssserver 3773 nobody 5u IPv6 676585599 0t0 UDP *:https

占用的进程PID是3773,所以我们直接干掉这个进程来释放443端口。

键入命令kill -9 3773并回车,执行成功后再重启Nginx顺利解决问题。

本文来源 蓝点网 原创,由 山外的鸭子哥 整理编辑,其版权均为 蓝点网 原创 所有,文章内容系作者个人观点,不代表 蓝点网 对观点赞同或支持。如需转载,请注明文章来源。
扫码关注蓝点网微信公众号

评论:

5 条评论,访客:5 条,站长:0 条
  1. bobcheng
    bobcheng发布于: 
    Google Chrome 53.0.2785.89 Google Chrome 53.0.2785.89 Windows 10 64位版 Windows 10 64位版

    ss暴露了:)

  2. 真心猪猪
    真心猪猪发布于: 
    Google Chrome 51.0.2704.103 Google Chrome 51.0.2704.103 Windows 7 64位版 Windows 7 64位版

    我觉得用 netstat 查看端口情况还方便些!

    • 山外的鸭子哥
      山外的鸭子哥发布于: 
      Google Chrome 53.0.2785.89 Google Chrome 53.0.2785.89 Windows 10 64位版 Windows 10 64位版

      嗯 多一种方法以备不时之需

  3. 1Q94
    1Q94发布于: 
    Google Chrome 53.0.2785.89 Google Chrome 53.0.2785.89 Windows 7 64位版 Windows 7 64位版

    咦 鸭子哥我vesta面板的邮件服务器老是启动不了 是不是端口占用了缘故?

    • 山外的鸭子哥
      山外的鸭子哥发布于: 
      Google Chrome 53.0.2785.89 Google Chrome 53.0.2785.89 Windows 10 64位版 Windows 10 64位版

      一般情况下来说无法启动会报错的 你得按报错的情况来看 另外用面板可能看不出来 你可以使用命令试试

发表评论