Linux如何查看端口是否被占用

Linux如何查看端口是否被占用
最新回答
梦已隔江南

2021-04-09 21:46:55

在Linux系统中,可通过netstat、ss和lsof命令查看端口占用情况,具体方法如下

1. 使用 netstat 命令

netstat 是传统网络状态检测工具,可显示网络连接、路由表等信息。查看指定端口是否被占用

netstat -tuln | grep :端口号

示例(查看80端口)

netstat -tuln | grep :80

参数说明

  • -t:显示TCP连接
  • -u:显示UDP连接
  • -l:仅显示监听状态的端口
  • -n:以数字形式显示地址和端口号结果解读:若输出包含目标端口,则说明已被占用,并显示对应进程的PID和程序名(需权限)。
2. 使用 ss 命令(推荐)

ss 是新一代网络统计工具,比netstat更快更高效,现代Linux系统推荐使用。查看某个端口是乎桥仔否被占用

ss -tuln | grep :端口号

示例(查看443端口)

ss -tuln | grep :443

参数说明:与netstat类似,但输出格式更简洁,性能更优。

3. 查看占用端口的进程信息

若发现端口被占用,需进一步定位进程信息,可结合lsof或ss的PID输出。使用 lsof 查看

lsof -i :端口号

示例(查看3306端口)

lsof -i :3306

输出内容

  • 进程名
  • PID(进程ID)
  • 用户
  • 协议(TCP/UDP)安装 lsof:若未安装,可通过包管理器安装:
  • Ubuntu/Debian:sudo apt install lsof
  • CentOS/RHEL:sudo yum install lsof # 或 sudo dnf install lsof
综合建议
  • 日常使用:优先使用ss命令,性能更好;若需详细进程消茄信息,搭配lsof更直观。
  • 常见场景

    启动Web服务前检查80/443端口

    调岁汪试应用时确认自定义端口是否冲突

    排查可疑连接或端口占用问题

示例流程

  1. 检查端口是否被占用:ss -tuln | grep :8080
  2. 若被占用,查看进程详情:lsof -i :8080
  3. 根据PID终止进程(如需):kill -9 PID

掌握上述方法后,可快速定位Linux系统中的端口占用情况,有效解决服务冲突或网络问题。