首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Windows 进程端口占用

Windows 进程端口占用

作者头像
jgrass
发布于 2024-12-25 16:52:19
发布于 2024-12-25 16:52:19
3.1K0
举报
文章被收录于专栏:蔻丁杂记蔻丁杂记

端口占用

Terminal window

代码语言:javascript
复制
netstat -ano | findstr port/pid

协议

本地地址

外部地址

状态

PID

TCP

0.0.0.0:3123

0.0.0.0:0

LISTENING

53368

TCP

127.0.0.1:3123

127.0.0.1:13777

ESTABLISHED

53368

TCP

127.0.0.1:13777

127.0.0.1:3123

ESTABLISHED

19292

本地地址与外部地址:因为 TCP 是面向连接的。本地地址就是对应进程自己占用的 IP 和端口,外部地址就是连接的远端的 IP 和端口。

进程处理

如果有需要,可以通过 tasklist 进一步查看进程的信息

Terminal window

代码语言:javascript
复制
tasklist /fi "PID eq 35456"-- ORtasklist | findstr 35456
代码语言:javascript
复制
映像名称                       PID 会话名              会话#       内存使用========================= ======== ================ =========== ============EasiNote.exe                 35456 Console                    1    196,392 K

或者通过 taskkill 杀死进程

/F 表示强制

Terminal window

代码语言:javascript
复制
taskkill /F /PID 35456-- ORtaskkill /F /IM EasiNote.exe           -- 这个会杀死所有进程名为 `EasiNote.exe` 的进程

端口保留

如果通过 netstat -ano 找不到占用端口的进程,可以通过

Terminal window

代码语言:javascript
复制
netsh interface ipv4 show excludedportrange protocol=tcp

查看被系统保留的端口

Terminal window

代码语言:javascript
复制
C:\> netsh interface ipv4 show excludedportrange protocol=tcp
Protocol tcp Port Exclusion Ranges
Start Port    End Port----------    --------      5357        5357      9800        9800      9801        9801     49671       49770     49871       49970     50000       50059     *
* - Administered port exclusions.

注意,标记 * 的为 管理的端口排除(Administered port exclusions)

意思是:这些端口不会被系统保留,你可以自己用。

而其它没有标记 * 号的表示:这些端口被系统保留了,你不能使用。

如果发现某个端口使用不了,而且没有找到占用的进程,那有可能这个端口,就是被系统保留了。

添加白名单

上面提到,如果端口是 Administered port exclusions,相当于系统白名单,这些端口是不会被系统保留的。

使用如下命令可以将端口添加到 Administered port exclusions

Terminal window

代码语言:javascript
复制
net stop winnat
netsh int ipv4 add excludedportrange protocol=tcp startport=4123 numberofports=5
netsh int ipv4 add excludedportrange tcp 4123 5 -- 简化写法
net start winnat

对应的,移除命令为

Terminal window

代码语言:javascript
复制
netsh int ipv4 delete excludedportrange tcp 4123 5

另外,如果发现被系统保留的端口意外的多,可以直接运行 net stop winnat 然后运行 net start winnat,说不定就能解决(能够释放大部分被保留的端口)。 具体原因未知。

关于系统保留端口的更多详情,可以参考:

hyper v - What is Administered port exclusions in windows 10? - Stack Overflow

参考文章

​

原文链接: https://cloud.tencent.com/developer/article/2481523

本作品采用 「署名 4.0 国际」 许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年1月17日 ,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 端口占用
  • 进程处理
  • 端口保留
  • 添加白名单
  • 参考文章
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档