Linux常用命令 查看端口占用并停止

本文介绍了在Linux系统中如何使用lsof和netstat命令查看端口占用情况,包括查看特定端口号的进程信息及如何关闭占用端口的进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux 查看端口占用命令:

1、lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000

# lsof -i:8000
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
lwfs    22065 root    6u  IPv4 4395053      0t0  TCP *:irdmi (LISTEN)

可以看到8000端口已经被轻量级文件系统转发服务lwfs占用

2、netstat -tunlp |grep 端口号,用于查看指定的端口号的进程情况,如查看8000端口的情况,netstat -tunlp |grep 8000

# netstat -tunlp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      4814/rpcbind        
tcp        0      0 0.0.0.0:5908                0.0.0.0:*                   LISTEN      25492/qemu-kvm      
tcp        0      0 0.0.0.0:6996                0.0.0.0:*                   LISTEN      22065/lwfs          
tcp        0      0 192.168.122.1:53            0.0.0.0:*                   LISTEN      38296/dnsmasq       
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      5278/sshd           
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      5013/cupsd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      5962/master         
tcp        0      0 0.0.0.0:8666                0.0.0.0:*                   LISTEN      44868/lwfs          
tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      22065/lwfs        
# netstat -tunlp | grep 8000
tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      22065/lwfs  

如果想关掉进程,则使用 kill -9 PID(PID为进程号) 就可以关闭了。比如想关掉上面占用8000端口的进程, 使用 kill -9 22065 就可以了

Linux查看服务器端口占用的命令主要包括 `lsof` 和 `netstat`,以及较新的替代工具 `ss`。 ### 使用 `lsof` 查看端口占用 `lsof` 是一个功能强大的工具,可以用来列出打开的文件和网络连接。以下是具体用法: - **查看特定端口占用情况** 可以通过 `-i` 参数指定协议和端口号。例如,要查看 8080 端口的使用情况: ```bash lsof -i:8080 ``` 如果需要查看 UDP 协议的端口,则可以通过指定协议实现: ```bash lsof -i udp:8080 ``` - **其他常用参数** - 列出某个进程 ID 所打开的文件:`lsof -p PID` - 列出属于某用户的进程:`lsof -u username` - 列出所有 TCP 或 UDP 连接:`lsof -i tcp` 或 `lsof -i udp` 以上方法适用于快速定位哪些服务正在使用某些端口[^2]。 --- ### 使用 `netstat` 查看端口占用 虽然 `netstat` 已逐渐被 `ss` 替代,但在许多旧版本系统中仍然可用。其主要用途是显示网络连接、路由表、接口统计等信息。 - **查看所有监听中的 TCP 和 UDP 端口** 使用以下命令可列出所有处于监听状态的端口及其对应的进程: ```bash netstat -tulnp ``` 参数说明: - `-t`: 显示 TCP 端口 - `-u`: 显示 UDP 端口 - `-l`: 仅显示监听中的端口 - `-n`: 不解析主机名和服务名称 - `-p`: 显示绑定到该端口进程 - **查找特定端口占用情况** 要检查某个端口(如 8080)是否已被占用获取对应进程的信息: ```bash netstat -tulnp | grep :8080 ``` 此方式可以帮助管理员了解是否有冲突的服务运行在同一端口上[^3]。 --- ### 推荐使用 `ss` 替代 `netstat` 由于性能更优且支持更多现代特性,推荐使用 `ss` 来代替传统的 `netstat` 命令。 - **基本语法** ```bash ss [-tanupl] ``` 参数解释: - `-t`: 显示 TCP 连接 - `-a`: 显示所有套接字(包括监听和非监听) - `-n`: 不尝试解析服务名称 - `-u`: 显示 UDP 套接字 - `-p`: 显示关联的进程 - `-l`: 仅显示监听状态的套接字 - **示例** 若要查看所有监听中的 TCP 和 UDP 端口: ```bash ss -tuln ``` 对于查询具体的端口(如 8080),可以直接过滤输出结果: ```bash ss -tuln | grep :8080 ``` 这种方法不仅效率更高,而且提供了更加详细的统计数据[^1]。 --- ### 终止占用端口进程 如果发现目标端口已经被占用,可通过以下步骤终止相关进程: 1. 获取进程 ID (`PID`)。 ```bash fuser 8080/tcp ``` 或者结合前面提到的方法提取 PID。 2. 使用 `kill` 命令停止进程: ```bash kill -9 PID ``` 完成操作后再次验证端口是否释放即可。 --- ### 总结 为了高效管理 Linux 中的端口资源,建议优先采用现代化工具如 `ss` 配合传统经典命令 `lsof` 完成任务。这些组合能满足绝大多数场景需求,提供清晰直观的结果展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值