使用netstat、lsof查看端口是否被占用

netstat

netstat用来查看系统当前系统网络状态信息,包括端口,连接情况等,常用方式如下:

netstat -atunlp,各参数含义如下:

-t : 指明显示TCP端口
-u : 指明显示UDP端口
-l : 仅显示监听套接字(LISTEN状态的套接字)
-p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序
-n : 不进行DNS解析
-a 显示所有连接的端口

一般该指令会与grep配合使用,比如查找端口22,就用netstat -tunlp | grep 22 或者干脆netstat -an | grep 22就可以了,查看其它端口类似,当然也可以通过端口状态查找即netstat -anp | grep TIME_WAIT,即只会显示含有TIME_WAIT字符串的条目

lsof

lsof的作用是列出当前系统打开文件(list open files),不过通过-i参数也能查看端口的连接情况,-i后跟冒号端口可以查看指定端口信息,直接-i是系统当前所有打开的端口

lsof -i:22 #查看22端口连接情况,默认为sshd端口
### 如何检查端口是否占用并终止该端口上的进程 #### Windows 平台 在 Windows 上,可以通过以下方法来检查端口是否占用,并终止对应的进程。 1. **检查端口占用情况** 使用 `netstat` 命令可以查看当前系统的网络连接状态以及监听的端口。例如,要检查 10000 端口是否占用,可以在命令提示符下运行以下命令: ```bash netstat -ano | findstr :10000 ``` 如果存在输出,则说明该端口已被某个进程占用。输出会显示协议、本地地址、外部地址以及 PID(进程 ID)。[^1] 2. **获取具体进程信息** 找到占用端口的 PID 后,可以通过任务管理器或者进一步使用 `tasklist` 命令找到具体的程序名称: ```bash tasklist /FI "PID eq <PID>" ``` 3. **终止占用端口的进程** 要强制结束占用端口的进程,可使用以下命令: ```bash taskkill /F /PID <PID> ``` 其中 `<PID>` 是上一步查找到的具体进程编号。 --- #### Linux 平台 在 Linux 上,同样可以通过多种方式检查端口占用情况并终止相应进程。 1. **检查端口占用情况** 可以使用 `netstat` 或者更现代的 `ss` 工具来检查端口占用情况。以下是两种常用的方式: - 使用 `netstat`: ```bash netstat -tunlp | grep :<PORT> ``` 将 `<PORT>` 替换为目标端口号,比如 3306。如果端口正在被占用,将会返回一条记录,其中包括进程 ID 和进程名称。[^3] - 使用 `lsof`: ```bash lsof -i:<PORT> ``` 此命令可以直接定位到指定端口所关联的进程及其详细信息。[^4] 2. **终止占用端口的进程** 获取到进程 ID (PID) 后,可通过以下命令杀死进程: ```bash kill -9 <PID> ``` 这里的 `-9` 参数表示强制终止进程。 --- ### 示例代码 以下是一些实际操作中的示例代码片段。 #### Windows 实例 ```batch :: 检查端口 10000 是否占用 netstat -ano | findstr :10000 :: 终止 PID=1234 的进程 taskkill /F /PID 1234 ``` #### Linux 实例 ```bash # 使用 netstat 查找端口 3306 占用情况 netstat -tunlp | grep :3306 # 使用 lsof 查找端口 8080 占用情况 lsof -i:8080 # 强制终止 PID=5678 的进程 kill -9 5678 ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值