检查端口被哪个进程占用和杀掉进程, Centos查看端口占用情况和开启端口命令 Linux教程



最近遇到LNMPA一键安装包的Apache无法启动的问题,Apache提示以下信息:

(98)Address already in use: make_sock: could not bind to address 127.0.0.1:88
no listening sockets available, shutting down
Unable to open logs

英文的主要意思是apache需要的端口被占用(可能是异常启动),导致apache无法使用需要的的端口(这里演示为88,自行安装的apache为80)。


一、检查端口被哪个进程占用


netstat -lnp|grep 88   #88请换为你的apache需要的端口,如:80


SSH执行以上命令,可以查看到88端口正在被哪个进程使用。进程号为 1777 。

二、查看进程的详细信息:  ps 80

SSH执行以上命令。查看相应进程号的程序详细路径。

三、杀掉进程,重新启动apache:  


kill -9 1777  #杀掉编号为1777的进程 service httpd start #启动apache


SSH执行以上命令,如果没有问题,apache将可以正常启动。


Centos查看端口占用情况和开启端口命令:


Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令:
 
lsof -i tcp:80
 
列出所有端口
 
netstat -ntlp
 
1、开启端口(以80端口为例)
 
      方法一:
 
         /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT   写入修改
 
         /etc/init.d/iptables save   保存修改
 
        service iptables restart    重启防火墙,修改生效
 
       方法二:
 
       vi /etc/sysconfig/iptables  打开配置文件加入如下语句:
 
       -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT   重启防火墙,修改完成
 
 
 
2、关闭端口
 
     方法一:
 
         /sbin/iptables -I INPUT -p tcp --dport 80 -j DROP   写入修改
 
         /etc/init.d/iptables save   保存修改
 
        service iptables restart    重启防火墙,修改生效
 
       方法二:
 
       vi /etc/sysconfig/iptables  打开配置文件加入如下语句:
 
       -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j DROP   重启防火墙,修改完成
 
 
 
3、查看端口状态
 
      /etc/init.d/iptables status
 

    如何查看centos端口占用情况:


    我们在使用LinuxVPS中,有些时候会发现端口被占用而导致无法启动的情况,比如HTTP占用80端口,FTP占用21端口,出现这种情况是因为软件冲突,或端口设置不正确导致,,此时就需要查看究竟哪个进程占用了端口,来决定进一步的处理方法。

    一、查看端口占用情况的命令:lsof -i

    这里返回了Linux当前所有打开端口的占用情况。第一段是进程,最后一列是侦听的协议、侦听的IP与端口号、状态。如果端口号是已知的常用服务(如80、21等),则会直接显示协议名称,如http、ftp、ssh等。

    二、查看某一端口的占用情况: lsof -i:端口号    查看80端口显示出nginx占用此端口,状态是listen

    三、结束占用端口的进程:killall 进程名

    虽然我们不建议用这种本末倒置的方法来解决冲突问题,但某些情况下还是可以直接结束掉占用进程的(比如重启Apache时进程没有完全退出,导致重启失败)

    killall nginx


    CentOS查看端口是否被占用:


    使用命令:
    netstat -tunlp
    会显示所有端口和所有对应的程序,用grep管道可以过滤出想要的关键字段。
     
    有关22端口占用的程序:
     
     
    复制代码 代码示例:[root@leiwan tmp]# netstat -tunlp |grep 22
    tcp        0      0 0.0.0.0:42957               0.0.0.0:*                   LISTEN      2230/rpc.statd      
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2443/sshd           
    tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      2292/cupsd          
    tcp        0      0 :::22                       :::*                        LISTEN      2443/sshd           
    tcp        0      0 ::1:631                     :::*                        LISTEN      2292/cupsd          
    tcp        0      0 :::57609                    :::*                        LISTEN      2230/rpc.statd      
    udp        0      0 0.0.0.0:5353                0.0.0.0:*                               2211/avahi-daemon   
    udp        0      0 0.0.0.0:631                 0.0.0.0:*                               2292/cupsd          
    udp        0      0 0.0.0.0:37167               0.0.0.0:*                               2230/rpc.statd      
    udp        0      0 0.0.0.0:52291               0.0.0.0:*                               2211/avahi-daemon   
    udp        0      0 0.0.0.0:68                  0.0.0.0:*                               2207/dhclient       
    udp        0      0 0.0.0.0:710                 0.0.0.0:*                               2230/rpc.statd      
    udp        0      0 :::39834                    :::*                                    2230/rpc.statd
    查看某一端口的占用情况: lsof -i:端口号
     
     
    复制代码 代码示例:1  [root@www ~]# lsof -i:21
    3  COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
    4  pure-ftpd 2651 root 4u IPv4 7047 TCP *:ftp (LISTEN)
    5  pure-ftpd 2651 root 5u IPv6 7048 TCP *:ftp (LISTEN)

    这里显示出21号端口正在被pure-ftpd使用,状态是listen。


    签名:这个人很懒,什么也没有留下!
    最新回复 (0)
    返回