Linux 查看端口占用情况

本文介绍在Linux系统中如何使用lsof和netstat命令查看端口占用情况,包括具体命令语法和实例,以及如何使用kill命令终止占用端口的进程。

Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。


lsof

lsof(list open files)是一个列出当前系统打开文件的工具。

lsof 查看端口占用语法格式:

lsof -i:端口号

实例

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

# lsof -i:8000
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
nodejs  26993 root   10u  IPv4 37999514      0t0  TCP *:8000 (LISTEN)

可以看到 8000 端口已经被轻 nodejs 服务占用。

lsof -i 需要 root 用户的权限来执行,如下图:

更多 lsof 的命令如下:

lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件

netstat

netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

netstat 查看端口占用语法格式:

netstat -tunlp | grep 端口号
  • -t (tcp) 仅显示tcp相关选项
  • -u (udp)仅显示udp相关选项
  • -n 拒绝显示别名,能显示数字的全部转化为数字
  • -l 仅列出在Listen(监听)的服务状态
  • -p 显示建立相关链接的程序名

例如查看 8000 端口的情况,使用以下命令:

# netstat -tunlp | grep 8000
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      26993/nodejs   

更多命令:

netstat -ntlp   //查看当前所有tcp端口
netstat -ntulp | grep 80   //查看所有80端口使用情况
netstat -ntulp | grep 3306   //查看所有3306端口使用情况

kill

在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令:

kill -9 PID

如上实例,我们看到 8000 端口对应的 PID 为 26993,使用以下命令杀死进程:

kill -9 26993

 

https://www.runoob.com/w3cnote/linux-check-port-usage.html

Linux 系统中,可以通过多种命令来查看端口的使用情况占用情况。以下是一些常用的命令及其用途: ### 查看所有端口占用情况 - **`netstat -tulnp`** 该命令可以列出所有正在监听的 TCP 和 UDP 端口,并显示与这些端口关联的程序信息。其中: - `-t` 表示显示 TCP 连接。 - `-u` 表示显示 UDP 连接。 - `-l` 表示只显示处于监听状态的连接。 - `-n` 表示以数字形式显示地址和端口号(不进行 DNS 解析)。 - `-p` 表示显示与端口相关的进程信息(需要 root 权限才能看到其他用户的进程)。 - **`netstat -AaLlnW`** 这个命令也可以用来检查所有端口占用情况,它提供了更为详细的网络连接信息[^1]。 ### 查看特定端口占用情况 如果需要查看某个特定端口的使用情况,可以结合 `grep` 命令来过滤输出结果: - **`netstat -tulnp | grep <端口号>`** 例如,要查看 80 端口的使用情况,可以执行: ```bash netstat -tulnp | grep 80 ``` 这将显示所有使用 80 端口的连接及其相关信息[^3]。 - **`netstat -ntulp | grep [端口号]`** 比如,要查看 5000 端口的使用情况,可以运行: ```bash netstat -ntulp | grep 5000 ``` 其中: - `-n` 表示不解析服务名称。 - `-t` 表示 TCP 协议。 - `-u` 表示 UDP 协议。 - `-l` 表示监听状态的连接。 - `-p` 表示显示进程 ID 和名称。 ### 查看端口连接的客户端 IP 地址 - **`netstat -anp`** 此命令可以查看端口的连接情况,包括客户端的 IP 地址。 - **`netstat -anp | grep <端口号>`** 如果只想查看特定端口的连接情况,比如 5000 端口,可以执行: ```bash netstat -anp | grep 5000 ``` ### 示例代码块 ```bash # 安装 net-tools 包(如果尚未安装) sudo yum -y install net-tools # 查看所有端口占用情况 netstat -tulnp # 查看 80 端口的使用情况 netstat -tulnp | grep 80 # 查看 5000 端口的使用情况 netstat -ntulp | grep 5000 # 查看 5000 端口的连接客户端 IP netstat -anp | grep 5000 ``` 通过上述命令,可以有效地管理和监控 Linux 系统中的端口使用情况,帮助诊断网络问题或优化系统性能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值