Linux 查看应用端口情况

本文介绍了 Linux 系统中两种常用的端口查询工具:lsof 和 netstat。lsof 功能强大,可查看端口占用、文件打开情况等;netstat 专注于网络连接统计,能显示 TCP/UDP 端口状态。文章详细列出了各工具的语法参数、实用示例和常用命令组合,并提供了进程管理的 kill 命令使用方法。通过学习这些命令,用户可以快速定位端口冲突问题,有效管理系统网络连接和进程状态。

博主博客

一、端口查询工具

1. lsof 命令

lsof(list open files)是一个功能强大的工具,用于列出当前系统打开的文件。在 Linux 中,一切皆文件,因此网络连接、设备等都可以用 lsof 来查看。

基本语法
bash 复制代码
lsof -i:端口号
实用示例

查看服务器 8080 端口的占用情况:

bash 复制代码
[nukix@uso6 docker]# lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java    651 root 10u IPv4 31769 0t0 TCP *:webcache (LISTEN)

从输出可以看到 8080 端口被 Java 进程占用,PID 为 651。

常用命令集合
命令 功能说明
lsof -i:8080 查看 8080 端口占用情况
lsof abc.txt 显示打开文件 abc.txt 的进程
lsof -c abc 显示 abc 进程打开的所有文件
lsof -p 1234 列出进程号为 1234 的进程打开的文件
lsof -g gid 显示归属指定 GID 的进程情况
lsof +d /usr/local/ 显示目录下被进程打开的文件
lsof +D /usr/local/ 递归搜索目录下的所有文件
lsof -d 4 显示使用文件描述符 4 的进程
lsof -i -U 显示所有打开的端口和 UNIX domain 文件
lsof -i tcp 显示所有 TCP 网络连接
lsof -i udp 显示所有 UDP 网络连接

2. netstat 命令

netstat 是网络统计工具,用于显示网络连接、路由表、接口统计等信息。

基本语法
bash 复制代码
netstat -tunlp | grep 端口号
参数说明
  • -t:显示 TCP 相关连接
  • -u:显示 UDP 相关连接
  • -n:以数字形式显示地址和端口号
  • -l:仅显示监听状态的连接
  • -p:显示建立连接的进程名和 PID
实用示例

查看 8080 端口使用情况:

bash 复制代码
[nukix@uso6 docker]# netstat -tunlp | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      651/java
常用命令集合
命令 功能说明
netstat -tunlp 查看所有监听端口
`netstat -tunlp grep 8080`
netstat -ntlp 查看当前所有 TCP 端口
`netstat -ntulp grep 80`
`netstat -ntulp grep 3306`
`netstat -an grep ESTABLISHED`
netstat -r 显示路由表信息

二、进程管理

kill 命令

在查询到端口占用的进程后,可以使用 kill 命令终止相关进程。

基本语法
bash 复制代码
kill -9 PID
实用示例

终止 PID 为 651 的进程:

bash 复制代码
kill -9 651
信号说明
  • kill -9:强制终止进程(SIGKILL)
  • kill -15:正常终止进程(SIGTERM)
  • kill -1:让进程重新读取配置文件(SIGHUP)

三、使用技巧

1. 组合查询

bash 复制代码
# 查找端口并立即终止进程
lsof -ti:8080 | xargs kill -9

# 查找多个端口
netstat -tunlp | grep -E '(8080|3306)'

2. 权限说明

  • 普通用户只能查看自己启动的进程
  • 需要 root 权限才能查看系统所有进程
bash 复制代码
sudo lsof -i:80
sudo netstat -tunlp

3. 工具选择建议

  • lsof:功能更强大,信息更详细
  • netstat:系统自带,兼容性更好

通过掌握这些命令,你可以有效地管理和监控系统的端口使用情况,快速定位和解决端口冲突问题。

相关推荐
又来敲代码了5 分钟前
k8s的部署
linux·运维·云原生·容器·kubernetes
梦·D·16 分钟前
安全运维工具箱sskit_v1.0.3 部署
运维
CDN36016 分钟前
DNS 负载均衡技术架构与调度策略解析
运维·架构·负载均衡
忡黑梨17 分钟前
eNSP_路由策略
运维·服务器·网络·华为·智能路由器·负载均衡
日取其半万世不竭21 分钟前
PostgreSQL 云服务器安装配置指南:从零开始搭建生产数据库
服务器·数据库·postgresql
IT WorryFree30 分钟前
FGT-KVM 完整部署极简教程(CentOS 7 + KVM 环境)
linux·运维·centos
上海云盾安全满满31 分钟前
网站被攻击了,高防CDN相比与高防服务器有什么优点
运维·服务器
一袋米扛几楼9834 分钟前
【报错问题】彻底解决 TypeScript 报错 TS2769: No overload matches this call (JWT 篇)
linux·javascript·typescript
@encryption34 分钟前
计算机网络 --- NAT
运维·服务器·计算机网络
goyeer37 分钟前
【ITIL4】32服务实践 - 服务变更管理
linux·运维·服务器·数字化·价值·itil