龙空技术网

「基础运维」服务端口冲突怎么排查?

虫虫安全 2080

前言:

此时同学们对“apache的80端口被占用”大致比较着重,兄弟们都需要剖析一些“apache的80端口被占用”的相关知识。那么小编在网上搜集了一些对于“apache的80端口被占用””的相关内容,希望同学们能喜欢,各位老铁们一起来了解一下吧!

在Linux下我们可以用netstat 这个工具,查看监听的端口,端口冲突主要监听的服务程序,已经占用了这个端口,比如常见是80,8080等端口冲突。

netstat是个非常棒的工具,是每一运维需要精通。比如:

用它看网卡情况,可以用nestat -ie

看常链接数可以用 netstat -nat|grep ES |wc –l

用来查看tcp各个状态链接数netstat -nat|perl -lane 'print $F[-1]'|sort|uniq –c

今天我们就用它排查服务器上监听端口的情况,注意netstat支持Linux和Windows,在两个平台都可以用,不过使用和结果有些不同。

在linux下

netstat -ntlp 就可以看到那个程序监听占用了特定端口,命令中-p参数可以列出来监听进程号和程序名。

上图命令结果,从左到右各列依次表示协议,接受在缓存数据包,放送缓存住的数据包,本地监听地址和端口,远程的地址和端口,服务状态(LISTEN表示是监听服务),最后是-p选项才有的结果,表示进程号Pid(Process ID)/ 服务名(启动服务的程序)。

在Windows下

比如一下命令式搜索:Windows监听80的有关信息:

netstat -ano|findstr LISTENING|findstr 80

注意,上图中最后一列为进程号,也就是Pid,这结果和Linux下的显示不同,没有显示启动服务的程序名。要查到程序名,我们的结合另一个命令tasklist。

tasklist查找启动程序名

用tasklist查找Pid号就能找到端口启用的程序:

tasklist|findstr Pid

看我们找到了是httpd.exe既apache服务占用了这个端口。

杀掉进程

kill -9 Pid,如果启动多个程序就用killall 服务名的,比如killall httpd

找出了占用的程序就好做了,把那个服务,kill 进程号杀掉就行。windows用

taskkill杀掉进程

taskkill /pid 4132 /F 强制停掉这个服务,/F表示强制。

停掉开机启动

chkconfig 服务名 off

linux用这个命令就能关掉这个服务的开机启动,以后就不会冲突了。

window下需要在系统服务里面停止这个服务。比如以停止apache为例子,在服务里面设置服务属性为手动,或者禁用就ok。

本文来源于小编昨天的一个问答,欢迎大家讨论,有这方面的问题,也可以直接回复我,我会帮你一起解决。

觉得有点用,请给我点赞,加我粉丝,谢谢大家

标签: #apache的80端口被占用