最近遇到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。