在WINDOWS下如何释放被占用的TCP/UDP端口?


我们都知道, 操作系统的端口Port同时只能被一个程序给占用, 如果端口已经被占用了, 那么就无法再对其使用, 除非先释放它. 在WINDOWS下, 我们可以通过两步骤来释放一个被占用的端口.

第一步就是通过 netstat -ano 命令来查看占用端口的进程ID, 参数 a 表示显示所有的链接和端口, 参数N表示用数字来显示地址和端口, 而参数O表示显示占用端口的进程PID.

运行该命令显示效果如下:

# netstat -ano

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       1320
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:1801           0.0.0.0:0              LISTENING       5052
  TCP    0.0.0.0:2103           0.0.0.0:0              LISTENING       5052
  TCP    0.0.0.0:2105           0.0.0.0:0              LISTENING       5052
  TCP    0.0.0.0:2107           0.0.0.0:0              LISTENING       5052
  TCP    0.0.0.0:2869           0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:2968           0.0.0.0:0              LISTENING       14048
  TCP    0.0.0.0:5040           0.0.0.0:0              LISTENING       11184
  TCP    0.0.0.0:6646           0.0.0.0:0              LISTENING       85592

最后一列就是占用端口的进程PID, 我们可以用管道把这输出结果和 findstr 命令来查找对应的端口, 如:

# netstat -ano | findstr 49669
STDIN
  TCP    127.0.0.1:5354         127.0.0.1:49669        ESTABLISHED     4752
  TCP    127.0.0.1:49669        127.0.0.1:5354         ESTABLISHED     4760

Windows 10 自带 findstr 命令, 类似 grep 工具, 可以下载 GNU Grep for Windows 来完成一样的任务.

接下来就好办了, 我们可以用 taskkill /f /pid PID 命令来杀掉占用端口的进程. PID就是进程的ID, 在上面命令结果的最后一列. 高级用户还可以通过 for 命令或者 awk 命令过滤最后一列, 然后写成一个小工具, 这里就不多叙述了.

需要注意的是, 上面的命令有可能错杀, 因为 grep 也有可能匹配到进程的ID或者是IP地址, 可以通过人工来选择或者 用 awk 来匹配第二列和第三列中的端口号.

英文: How to Free TCP/UDP Port on Windows Using netstat and taskkill?

GD Star Rating
loading...
本文一共 344 个汉字, 你数一下对不对.
在WINDOWS下如何释放被占用的TCP/UDP端口?. (AMP 移动加速版本)
上一篇: 孩子喜欢的 cozmo 机器人
下一篇: Adsense 提高广告收入小技巧: 让GOOGLE替你自动为你试验优化并选择最佳配置

扫描二维码,分享本文到微信朋友圈
cff3b84b0404eaa02d9b772327cc4db0 在WINDOWS下如何释放被占用的TCP/UDP端口? I.T. 小技巧 运维

评论