两个系统
【windows版】
用“netstat ”查看端口状态,在Windows中,可以在命令提示符下使用“netstat ”查 看系统端口状态,可以列出系统正在开放的端口号及其状态
Netstat -a -e -n -o -s-an-a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。
-e 表示显示以太网发送和接收的字节数、数据包数等。
-n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。
-o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。
-s 表示按协议显示各种连接的统计信息,包括端口号。
-an 查看所有开放的端口
1.找到使用的端口号命令
【开始】---->【运行】---->cmd,或者是【window】+【R】组合键,调出命令窗口
netstat -ano
列出所有端口的情况
2.找到被占用的端口号的PID后面的数字命令
netstat -aon|findstr "被占用的端口号"
3.查看哪个程序占用端口命令
tasklist|findstr "PID"
4.结束程序
taskkill /f /t /im 程序名.exe
或者3.4步可以从任务管理器操作
【Ctrl】+【shift】+【Esc】
调出任务管理器,右击找到PID显示PID,找到对应程序,关闭
【Linux版】
因为我这是在虚拟机用centos镜像装的linux所以没有lsof命令
lsof是列出当前系统打开文件的工具
1.CentOS系统下安装lsof命令
yum install lsof
默认安装在/usr/sbin/lsof
1.找到占用的端口号命令
以root 用户来执行
lsof -i
如果不是root用户则在命令前加sudo lsof -i 1
各列信息意义如下:
command :进程的名称 PID :进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述识别该文件。如cwd,txt等
TYPE:文件类型,如DIR,REG 等
DEVICE:指定磁盘名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
2.查看指定某一端口的占用情况
lsof -i :端口号
3.如果只是为了关闭占用端口的进程到这一步就可以结束了
安装kill命令
yum install -y psmisc
kill 进程PID
或者killall 进程名
kill具体使用方法可以借鉴:https://linux.cn/article-9715-1.html
2.CentOS系统下安装netstat命令
yum -y install net-tools
1.显示tcp,ucp的端口和进程等相关情况
netstat -tunlp
-t (tcp) 仅显示tcp相关选项 -u (udp) 仅显示udp相关选项
-n 拒绝显示列名,能显示数字的全部转化为数字
-l 仅显示出在listen(监听)的服务状态
-p 显示潜力相关链接的程序名
2.查看指定端口号的进程
netstat -tunlp |grep 端口号
也可以
netstat -pan | grep 端口号
3.通过进程id查找程序
ps -aux | grep pid
PID不是端口,是系统分配给每一个进程的唯一标识符
是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收,可能会被继续分配给新运行的程序。
到这一步就能非常详细的确定是哪个进程占用端口了