怎样查看Linux端口占用

在 Linux 系统的使用中,经常会有端口占用的情况发生,导致程序无法安装,正常运行,稍微懂一点计算机网络的大家都知道,当一个程序占用了某个端口之后,这个端口就不能再被其他程序使用了。经常有朋友问老鬼 CentOS,Ubuntu,Debian 系统这出了问题那出了问题,前几步检查必查的就是端口占用。那么怎么去检测查看,Linux系统的端口占用情况呢?老鬼这里介绍几种常见和通用的办法。

Screen-Shot-2018-12-16-at-17.18.19Insert-Rename-MacrosInsert-Rename-Macros

老鬼的博客原创文章保留所有权利,允许提前告知并保留原文链接的转载,任何无视版权的行为将吃到搜索引擎的 DMCA 投诉,请了解。

二、方法

首先,当你无法运行以下命令时候,请检查是否已经安装相应软件,您可以用以下命令安装:

# 安装 netstat 需要的组件
$ yum install net-tools # CentOS 系列系统
$ apt-get install net-tools # Ubuntu 和 Debian 系列系统
# 安装 lsof
$ yum install lsof # CentOS 系列系统
$ apt-get install lsof # Ubuntu 和 Debian

netstat

netstat 的用法参数如下:

  • -a 显示所有连接
  • -t 显示TCP端口
  • -u 显示UDP端口
  • -l 仅显示套接字监听的端口
  • -n 用数字显示ip和端口
  • -p 显示端口对应的进程PID和名字

所以我们就可以这么查看

$ netstat -atunp # 查看已经建立连接的端口情况命令
$ netstat -tunlp #显示所有服务器端口监听使用情况

当80端口被占用的时候可以这么用

$ netstat -tunlp | grep 80 # 查看80端口情况

lsof

lsof 的功能也比较强大,这里我们用到的是 -i 参数,用法如下

lsof -i # 列出所有端口情况
lsof -i:[端口] # [端口] 换成在要查询的占用端口
# 如查询 80 端口
lsof -i:80

三、后记

查询到端口占用后,不一定非要杀死这个进程。也可以换一个没被占用的端口用,如果无法更改端口,又决心如果决心想用相应端口,可以用 kill 命令杀死对应占用程序。

$ kill -9 [pid] # [pid] 换成在上面命令获得的进程PID

Related Post

发表回复