window与linux查看端口被占用

Posted java-jun-world2099

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了window与linux查看端口被占用相关的知识,希望对你有一定的参考价值。

本文摘写自:

百度经验

https://www.cnblogs.com/ieayoio/p/5757198.html

 一、windows:开始---->运行---->cmd,或者是window+R组合键,调出命令窗口

技术分享图片

 1、输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是49157,首先找到它。

 技术分享图片

2、查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49157",回车,记下最后一位数字,即PID,这里是2720。

 技术分享图片

3、继续输入tasklist|findstr "2720",回车,查看是哪个进程或者程序占用了2720端口,结果是:svchost.exe

 技术分享图片

4、或者是我们打开任务管理器,切换到进程选项卡,在PID一列查看2720对应的进程是谁,如果看不到PID这一列,如下图:

 技术分享图片

5、则我们点击查看--->选择列,将PID(进程标示符)前面的勾打上,点击确定。

 技术分享图片

6、这样我们就看到了PID这一列标识,看一下2720对应的进程是谁,如果没有,我们把下面的显示所有用户的进程前面的勾打上,就可以看到了,映像名称是svchost.exe,描述是,Windows的主进程,与上面命令查看的完全一致。

 技术分享图片

7、结束该进程:在任务管理器中选中该进程点击”结束进程“按钮,或者是在cmd的命令窗口中输入:taskkill /f /t /im Tencentdl.exe。

 技术分享图片

二、linux:查看端口占用情况

在使用Linux系统的过程中,有时候会遇到端口被占用而导致服务无法启动的情况。比如HTTP使用80端口,但当启动Apache时,却发现此端口正在使用。

这种情况大多数是由于软件冲突、或者默认端口设置不正确导致的,此时需要查看究竟哪个进程占用了端口,来决定进一步的处理方法。

1、查看端口占用情况的命令:lsof -i

 技术分享图片

这里返回了Linux当前所有打开端口的占用情况。第一段是进程,最后一列是侦听的协议、侦听的IP与端口号、状态。如果端口号是已知的常用服务(如80、21等),则会直接显示协议名称,如http、ftp、ssh等。

 2、查看某一端口的占用情况: lsof -i:端口号

 技术分享图片

这里显示出21号端口正在被pure-ftpd使用,状态是listen。

3、结束占用端口的进程:killall 进程名

虽然我们不建议用这种本末倒置的方法来解决冲突问题,但某些情况下还是可以直接结束掉占用进程的(比如重启Apache时进程没有完全退出,导致重启失败)

 技术分享图片

这样,所有的pure-ftpd进程都会被结束掉。

4、也可使用命令:netstat -apn|grep <端口号>

例如:
Linux代码  
[[email protected] user0]# netstat -apn|grep 80  
tcp        0      0 :::80                       :::*                        LISTEN      19408/java    
找到进程号以后,再使用以下命令查看详细信息:
ps -aux|grep <进程号>
 

 

以上是关于window与linux查看端口被占用的主要内容,如果未能解决你的问题,请参考以下文章

windows怎么查看端口是不是被占用

mac 查询端口被哪个进程占用

linux与windows查看占用端口的进程ID并杀死进程

查看windows和linux下端口是否被占用

Windows与Linux下查看端口占用与结束进程命令

Windows与Linux下查看端口占用与结束进程命令