如何详细查询Linux系统下特定端口的占用状态及运行进程?

更新于
2026-08-04 02:00:33
2阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

使用者痛点的观点是,为什么需要查询Linux端口占用状态?

作为Linux程序管理员或开发者,您是否遇到过这些问题?说起来,

  • 服务无法启动,怀疑端口被占用但不知道具体情况
  • 应用部署失败,报错显示端口冲突却找不到根源
  • 程序性能下降,需要排查非法占用的端口进程
  • 安全审计要求检查所有监听端口及关联进程
  • 网络连接异常,需要验证特定端口的状态和使用情况

说到主要方法,两大命令详细说明端口占用状态

1. lsof命令 - 全面精准的端口检测工具

-i选项专注于网络连接检测:

如何详细查询Linux系统下特定端口的占用状态及运行进程?
$ sudo lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1234 root 4u IPv4 123456 0t0 TCP *:http 

高级用法示例:

如何详细查询Linux系统下特定端口的占用状态及运行进程?
  • $ lsof -i TCP -s TCP:LISTEN。ESTABLISHED -nP | grep :8080
  • $ sudo lsof -Pan -i :mysql | grep LISTEN | awk '{print $2}' | xargs kill -9
  • $ lsof -i :80 +c 10 # 查看占用80端口且命令长度超过10字符的进程

2. netstat命令 - 经典网络状态分析器

关键参数解析:

   显示TCP/UDP连接及监听进程信息
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
& 
   数字化显示所有连接 &       ©ç¶·#@<#@ç#@<#@<#@@@@@@@@@@@@@@@@@@@<
参数含义与示例输出解释
-tunlp
-ano
-s

常见组合命令:$ sudo netstat -tunlp | grep ':80\|:443'

说到实际方法,高效排查与管理端口问题⚠️关键场景处理⚠️

安全审计模式
$ ss -tulnp | awk 'NR==1 || /^+ + .*:]+/ {print}'
$ sudo lsof +c 1 +r5 +l +d /usr/bin/* | grep LISTEN
$ sudo fuser --socket --tcp --port=5432 --verbose
$ ps auxw | awk '$NF~/:]{1,5}$/' # 检查非标准位置的服务器进程

常见问题快速解答

Q: 查到异常占用如何处理?说起来,

bash kill $ # 软终止方式推荐 killall # 按名称结束所有实例 systemctl stop .service # 对已知服务更优先使用systemd方式

Q: 未授权服务如何处理?

bash chmod a-x /path/to/executable # 阻止执行权限 iptables -I INPUT -p tcp --dport numberin_question! 其实,-j DROP # 防火墙阻断访问

Q: 常规维护建议?话说回来,

bash

sudo ss -tnlp> /var/log/listeningports.log && \ sudo lsof +c> /var/log/openfiles.log && \ diff lastreport.txt currentreport.txt>> changes.log

Q: 被删除二进制文件的僵尸进程怎么办?

bash ps auxwwwwwwwwwww|grep deleted|grep port_number|awk '{print $2}'|while read pid;do kill $pid;老实说,done

+++++ 辅助工具集.md.html.md

标签:端口

使用者痛点的观点是,为什么需要查询Linux端口占用状态?

作为Linux程序管理员或开发者,您是否遇到过这些问题?说起来,

  • 服务无法启动,怀疑端口被占用但不知道具体情况
  • 应用部署失败,报错显示端口冲突却找不到根源
  • 程序性能下降,需要排查非法占用的端口进程
  • 安全审计要求检查所有监听端口及关联进程
  • 网络连接异常,需要验证特定端口的状态和使用情况

说到主要方法,两大命令详细说明端口占用状态

1. lsof命令 - 全面精准的端口检测工具

-i选项专注于网络连接检测:

如何详细查询Linux系统下特定端口的占用状态及运行进程?
$ sudo lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 1234 root 4u IPv4 123456 0t0 TCP *:http 

高级用法示例:

如何详细查询Linux系统下特定端口的占用状态及运行进程?
  • $ lsof -i TCP -s TCP:LISTEN。ESTABLISHED -nP | grep :8080
  • $ sudo lsof -Pan -i :mysql | grep LISTEN | awk '{print $2}' | xargs kill -9
  • $ lsof -i :80 +c 10 # 查看占用80端口且命令长度超过10字符的进程

2. netstat命令 - 经典网络状态分析器

关键参数解析:

   显示TCP/UDP连接及监听进程信息
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
& 
   数字化显示所有连接 &       ©ç¶·#@<#@ç#@<#@<#@@@@@@@@@@@@@@@@@@@<
参数含义与示例输出解释
-tunlp
-ano
-s

常见组合命令:$ sudo netstat -tunlp | grep ':80\|:443'

说到实际方法,高效排查与管理端口问题⚠️关键场景处理⚠️

安全审计模式
$ ss -tulnp | awk 'NR==1 || /^+ + .*:]+/ {print}'
$ sudo lsof +c 1 +r5 +l +d /usr/bin/* | grep LISTEN
$ sudo fuser --socket --tcp --port=5432 --verbose
$ ps auxw | awk '$NF~/:]{1,5}$/' # 检查非标准位置的服务器进程

常见问题快速解答

Q: 查到异常占用如何处理?说起来,

bash kill $ # 软终止方式推荐 killall # 按名称结束所有实例 systemctl stop .service # 对已知服务更优先使用systemd方式

Q: 未授权服务如何处理?

bash chmod a-x /path/to/executable # 阻止执行权限 iptables -I INPUT -p tcp --dport numberin_question! 其实,-j DROP # 防火墙阻断访问

Q: 常规维护建议?话说回来,

bash

sudo ss -tnlp> /var/log/listeningports.log && \ sudo lsof +c> /var/log/openfiles.log && \ diff lastreport.txt currentreport.txt>> changes.log

Q: 被删除二进制文件的僵尸进程怎么办?

bash ps auxwwwwwwwwwww|grep deleted|grep port_number|awk '{print $2}'|while read pid;do kill $pid;老实说,done

+++++ 辅助工具集.md.html.md

标签:端口