windows和Linux查看端口占用进程并关闭

Windows:

以端口8080为例:

1.查找对应的端口占用的进程:netstat  -aon|findstr  "8080"    ,找到占用8080端口对应的程序的PID号:

2.根据PID号找到对应的程序:tasklist|findstr "PID号"    ,找到对应的程序名

3.结束该进程:taskkill /f /t /im 程序名

Linux:

今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用。

使用命令:

ps aux | grep tomcat

发现并没有8080端口的Tomcat进程。

使用命令:netstat –apn

查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name 

clip_image002

发现8080端口被PID为9658的Java进程占用。

进一步使用命令:ps aux | grep java,或者直接:ps aux | grep pid 查看

clip_image004

就可以明确知道8080端口是被哪个程序占用了!然后判断是否使用KILL命令干掉!

方法二:直接使用 netstat   -anp   |   grep  portno
即:netstat –apn | grep 8080

 

参考自:http://blog.csdn.net/superit401/article/details/51501166

参考自:https://www.cnblogs.com/benio/archive/2010/09/15/1826728.html

补充:

1. ps aux,ps -aux和ps -ef的区别:

请注意"ps -aux"不同于"ps aux"。POSIX和UNIX的标准要求"ps -aux"打印用户名为"x"的用户的所有进程,以及打印所有将由-a选项选择的过程。如果用户名为"x"不存在,ps的将会解释为"ps aux",而且会打印一个警告。这种行为是为了帮助转换旧脚本和习惯。它是脆弱的,即将更改,因此不应依赖。综上: 使用时两者之间直接选择ps aux。

ps aux和ps -ef,两者的输出结果差别不大,但展示风格不同。Unix系统中的两种风格,System V风格和BSD 风格。aux是BSD风格,-ef是System V风格。这是次要的区别,一个影响使用的区别是aux会截断command列,而-ef不会。当结合grep时这种区别会影响到结果。综上:以上三个命令推荐使用:ps –ef 。

2.  在linux一般使用netstat 来查看系统端口使用情况:
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的
netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。
该命令的一般格式为:
netstat [选项]
命令中各选项的含义如下:
-a 显示所有socket,包括正在监听的。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式同“ifconfig -e”。
-n 以网络IP地址代替名称,显示出网络连接情形。
-r 显示核心路由表,格式同“route -e”。
-t 显示TCP协议的连接情况。
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。

1. netstat -an | grep LISTEN
    0.0.0.0的就是每个IP都有的服务,写明哪个IP的就是绑定那个IP的服务。
2. netstat -tln
    用来查看linux的端口使用情况
3. /etc/init.d/vsftp start
    是用来启动ftp端口~!
4. netstat
    查看已经连接的服务端口(ESTABLISHED)
5. netstat -a
    查看所有的服务端口(LISTEN,ESTABLISHED)
6. sudo netstat -ap
    查看所有的服务端口并显示对应的服务程序名
7. nmap <扫描类型><扫描参数>
例如:
    nmap localhost
    nmap -p 1024-65535 localhost
    nmap -PT 192.168.1.127-245
当我们使用 netstat -apn 查看网络连接的时候,会发现很多类似下面的内容:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 52 218.104.81.152:7710 211.100.39.250:29488 ESTABLISHED 6111/1

显示这台服务器开放了7710端口,那么这个端口属于哪个程序呢?我们可以使用lsof -i :7710命令来查询:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 1990 root 3u IPv4 4836 TCP *:7710 (LISTEN) 54com.cn
这样,我们就知道了7710端口是属于sshd程序的。

posted @ 2017-11-14 18:42  DarrenChan陈驰  阅读(1460)  评论(0编辑  收藏  举报
Live2D