如何查询端口号被哪个程序占用?

本文介绍在Windows系统中如何检查80端口被哪个进程占用,并提供了终止占用进程的方法。

以下文章主要以80端口号为例,如果想知道其他的端口号也可以使用该方法..........................

"到底是谁占用了80端口,该怎么查,怎么终止它?",这里就简单讲解一下,在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等.
        这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入"cmd"后点击确定按钮,进入DOS窗口,接下来分别运行以下命令:
        >netstat -aon | findstr "80"
                Proto  Local Address          Foreign Address        State            PID
                ====  ============      ==============  ==========  ======
                TCP    0.0.0.0:80                    0.0.0.0:0                LISTENING      1688
可以看出80端口被进程号为1688的程序占用.
        >tasklist | findstr "1688"
图像名                                                PID            会话名                    会话#       内存使用
               ========================= ====== ================ ======== ============
               inetinfo.exe                                        1688           Console                      0              2,800 K
很明显,是inetinfo占用了80端口;inetinfo.exe主要用于支持微软Windows IIS网络服务的除错,这个程序对你系统的正常运行是非常重要的.
        当然,并不是只有inetinfo.exe进程会占用80端口,这只是我机器上的情况.如果你并不了解此进程是干什么用的,千万不要盲目地将其kill掉,最好先百度或Google搜索一下;当然如果你很了解它,并确定可以终止,那么继续下面的命令.
        >taskkill /pid 1688 /F
成功: 已终止 PID 为 1688 的进程。
如果你很熟悉此进程,并确定可以终止,那么就直接使用上面的命令把PID为1688的进程终止.(这一步同样可以在任务管理器中执行,inetinfo.exe就是任务管理器中的映像名称,选中它,点击"结束进程"即可)
        >tasklist | findstr "1688"
再次确认是否成功终止,如果成功终止此次执行命令后应返回空.

<think>我们正在查找占用3306端口的进程。根据引用[1]和引用[2],我们可以使用`lsof`或`fuser`命令。 由于用户明确要求查找3306端口,我们将提供两种常用方法,并附上示例。 方法1:使用lsof命令 命令:`lsof -i :3306` 方法2:使用netstat命令(如果系统没有lsof,可以使用netstat) 命令:`netstat -tunlp | grep :3306` 方法3:使用fuser命令(需要root权限) 命令:`fuser -v 3306/tcp` 如果找到进程,我们可以通过PID来查看进程的详细信息,并决定是否终止。 另外,引用[1]还提到了终止进程的方法,但用户目前只需要查找,所以我们先提供查找步骤。 注意:执行这些命令可能需要root权限,特别是当端口被非当前用户的进程占用时。 我们按照用户要求,在回答中引用相关段落,并在末尾添加引用标识。</think>在 Linux 系统中查询 3306 端口被哪个程序占用,可通过以下步骤操作: ### 方法 1:使用 `lsof` 命令(推荐) ```bash sudo lsof -i :3306 ``` 执行后输出类似: ``` COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 1234 mysql 25u IPv6 54321 0t0 TCP *:mysql (LISTEN) ``` 这里显示: - `mysqld` 是占用端口的程序名 - `1234` 是进程 PID - `mysql` 是运行该程序的用户[^1][^2] ### 方法 2:使用 `netstat` 命令 ```bash sudo netstat -tulnp | grep :3306 ``` 输出示例: ``` tcp6 0 0 :::3306 :::* LISTEN 1234/mysqld ``` 最后一列 `1234/mysqld` 直接显示 PID 和程序名[^1] ### 方法 3:使用 `ss` 命令(更高效) ```bash sudo ss -ltnp 'sport = :3306' ``` 输出示例: ``` State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 80 :::3306 :::* users:(("mysqld",pid=1234,fd=25)) ``` 在 `users:` 部分可见进程名和 PID[^1] ### 查看进程详细信息 获取 PID 后,查看进程完整信息: ```bash ps -fp 1234 ``` 输出示例: ``` UID PID PPID C STIME TTY TIME CMD mysql 1234 1 0 10:00 ? 00:05:12 /usr/sbin/mysqld ``` 最后一列显示进程的完整启动命令[^1] ### 关键说明 1. 必须使用 `sudo` 获取完整权限 2. 3306 端口通常是 MySQL/MariaDB 服务的默认端口 3. 若输出为空,表示端口未被占用 --- ###
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值