Linux如何查询端口被占用?

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
云备份 Cloud Backup,100GB 3个月
简介: 在Linux环境中,查询端口占用可使用`netstat`、`lsof`和`ss`命令。`netstat -tulnp | grep 80`显示TCP/UDP监听端口,`lsof -i:80`列出使用80端口的进程,而`ss -tuln | grep 80`是`netstat`的现代替代选项。若需解决端口占用问题,先找出占用进程的ID,然后用`kill -9`命令终止它,或调整服务配置以避免冲突。

说到查询Linux系统端口占用,就想起了去年我在配置一套复杂的开发环境时遇到的问题。那时候,需要确保某个服务的端口没有被其他进程占用,真是让人抓狂了一阵子。分享一下我知道的查询端口占用的方法和解决办法。

netstat命令

最常用的命令是netstat,但在一些新版的Linux发行版中可能需要安装net-tools包才能使用它。通过netstat可以轻松查看所有端口的使用情况,如果你想查看特定端口(比如说80端口)的占用情况,可以这样用:

netstat -tulnp | grep 80
  • -t 代表显示 TCP 端口
  • -u 代表显示 UDP 端口
  • -l 代表仅显示监听状态的端口
  • -n 代表直接显示 IP 地址和端口号,而不是尝试解析域名和服务名

这条命令会显示所有状态为LISTEN的服务,并通过grep筛选出80端口的信息。

lsof命令

接下来是lsof命令,这个命令也非常强大,它可以列出打开文件的进程信息。查看端口占用情况时,可以这样使用:

lsof -i:80

这条命令会列出所有使用80端口的进程。

ss命令

现在很多Linux系统都用systemd管理系统服务,所以ss命令也变得很常用。它是netstat的一个现代替代品。查看端口占用也很简单:

ss -tuln | grep 80

解决占用端口的进程

假设你发现了某个端口被占用,下一步就是解决这个问题。首先,你需要确定哪个进程占用了这个端口。上面的命令中,netstatlsof会显示出进程ID。找到进程ID后,如果确定这个进程不应该占用这个端口,或者这个进程已经僵死,你可以用kill命令终止它:

kill -9 进程ID

如果是因为某个服务不应该启动而占用了端口,你可能还需要禁用这个服务,或者更改其配置,让它监听不同的端口。

目录
相关文章
|
3月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
637 2
|
8天前
|
安全 Linux 网络安全
Linux 开放的端口太多了?教你一招找出所有开放的端口,然后直接干掉!
在 Linux 系统中,端口管理至关重要。本文介绍了如何使用 `netstat`、`lsof` 和 `nmap` 等工具查找开放端口,并通过关闭相关服务、修改防火墙规则或禁用网络接口来关闭这些端口,以提高系统安全性。注意不要随意关闭重要端口,谨慎操作并备份数据。
20 3
|
22天前
|
运维 Linux
Linux查找占用的端口,并杀死进程的简单方法
通过上述步骤和命令,您能够迅速识别并根据实际情况管理Linux系统中占用特定端口的进程。为了获得更全面的服务器管理技巧和解决方案,提供了丰富的资源和专业服务,是您提升运维技能的理想选择。
24 1
|
1月前
|
Linux 虚拟化 C++
Linux基础知识查询总结(上)
Linux基础知识查询总结(上)
37 4
|
1月前
|
移动开发 Linux 开发工具
Linux基础知识查询总结(下)
Linux基础知识查询总结(下)
48 2
|
1月前
|
网络协议 安全 Linux
阿里云国际上如何检查 Linux 上正在使用哪些端口
阿里云国际上如何检查 Linux 上正在使用哪些端口
|
2月前
|
Linux Python
用python扫描linux开放的端口(3种方式)
这篇文章介绍了三种使用Python实现Linux端口扫描的方法,包括基础版端口扫描、全端口扫描和多线程扫描技术。
62 15
|
2月前
|
Linux Shell
10-10|linux命令查询 关键字在文本中出现的行数
10-10|linux命令查询 关键字在文本中出现的行数
|
2月前
|
Linux Shell
6-9|linux查询现在运行的进程
6-9|linux查询现在运行的进程
|
3月前
|
网络协议
Mac根据端口查询进程id的命令
这篇文章介绍了在Mac操作系统上如何使用两种命令来查询监听特定端口的进程ID。第一种方法是使用`netstat -anp tcp -v | grep 端口号`,例如`netstat -anp tcp -v | grep 80`,这将列出所有使用端口80的TCP连接及其相关信息。第二种方法是使用`lsof -P -n -i:端口号`,例如`lsof -P -n -i:8080`,这将显示使用指定端口的进程列表,包括进程ID、用户、文件描述符等信息。文章通过示例展示了如何使用这些命令,并提供了输出结果的截图。
303 2