查询和关闭被占用的接口的应用
一、windows平台netstat
1. 查询端口占用的进程
假设你知道要查询的端口号为 8080
,可以使用以下命令查询哪个进程占用了该端口:
netstat -ano | findstr :8080
输出结果可能会类似如下:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5678
这里的 5678
是占用该端口的进程 ID (PID)。
2. 定位进程详细信息
使用以下命令查看该进程的详细信息:
tasklist /FI "PID eq 5678"
这将显示进程名称和其它信息,例如:
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
node.exe 5678 Console 1 50,000 K
3. 关闭该进程
如果确认该进程不应该占用端口,可以使用以下命令关闭该进程:
taskkill /PID 5678 /F
/F
选项表示强制终止进程。关闭进程后,该端口将被释放。
注意:在终止进程之前,确保这个进程不是系统或关键应用程序,否则可能会导致系统或应用崩溃。
=============================================================================
二、Linux下netstat命令
1. netstat参数详解
netstat -a 可以显示所有网络连接,包括TCP和UDP连接
netstat -t 查看TCP连接
netstat -u 查看UDP连接
netstat -l 显示正在监听状态的端口信息
netstat -p 显示与每个网络连接关联的进程ID和进程名
netstat -r 显示系统的路由表信息
netstat -c:以实时方式持续显示网络连接状态,方便实时监控网络活动。
netstat -i:显示系统的网络接口信息,包括接口名称、IP地址、MAC地址等。
netstat -s:显示网络统计信息,如收发的数据包数量、错误数量等。
命令中各选项的含义如下:
-a 显示所有socket,包括正在监听的。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式“netstat -i”。
-n以网络IP地址代替名称,显示出网络连接情形。
-r显示核心路由表,格式同“route -e”。
-t 显示TCP协议的连接情况
-u 显示UDP协议的连接情况。
-v显示正在进行的工作。
-p 显示建立相关连接的程序名和PID。
-b 显示在创建每个连接或侦听端口时涉及的可执行程序。
-e 显示以太网统计。此选项可以与 -s 选项结合使用。
-f 显示外部地址的完全限定域名(FQDN)。
-o显示与与网络计时器相关的信息。
-s 显示每个协议的统计。
-x 显示 NetworkDirect 连接、侦听器和共享端点。
-y 显示所有连接的 TCP 连接模板。无法与其他选项结合使用。
interval 重新显示选定的统计,各个显示间暂停的 间隔秒数。按 CTRL+C 停止重新显示统计。如果省略,则 netstat 将打印当前的配置信息一次。
列标题
Name接口的名字
Mtu 接口的最大传输单位
Net/Dest 接口所在的网络
Address 接口的IP地址
Ipkts 接收到的数据包数目
Ierrs 接收到时已损坏的数据包数目
Opkts 发送的数据包数目
Oeers 发送时已损坏的数据包数目
Collisions 由这个接口所记录的网络冲突数目
常见状态
即连接状态。在原模式中没有状态,在用户数据报协议中也经常没有状态,于是状态列可以空出来。若有状态,通常取值为:
LISTEN
侦听来自远方的TCP端口的连接请求
SYN-SENT
在发送连接请求后等待匹配的连接请求
SYN-RECEIVED
在收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED
代表一个打开的连接
FIN-WAIT-1
等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2
从远程TCP等待连接中断请求
CLOSE-WAIT
等待从本地用户发来的连接中断请求
CLOSING
等待远程TCP对连接中断的确认
LAST-ACK
等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT
等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED
没有任何连接状态
2. netstat常用选项
显示系统网络状态的所有连接 netstat -a | head
使用管道符查看某个在运行的服务信息 netstat -antup | grep httpd
查看本机监听的端口和进程 netstat -ntpl
=============================================================================
三、Linux下关闭端口和进程
1. netstat查询端口并关闭
1、查看占用端口进程的PID
netstat -tlnp | grep 端口号
netstat -tlnp|grep 3306
2、根据PID kill掉相关进程
kill -9 {PID}
2. ss查询端口对应进程号并关闭
1、查询端口号和pid
ss -ltnp | grep 端口号
--注意:-tlnp和-ltnp
ss -ltnp|grep 3306
2、根据PID kill掉相关进程
kill -9 {PID}
3. lsof查询进程并关闭
1、查看占用端口进程的PID
lsof -i:{端口号}
lsof -i:8088
2、根据PID kill掉相关进程
kill -9 {PID}
评论