WSL Docker 端口明明空闲,但就是绑不上端口

WSL Docker 端口明明空闲,但就是绑不上端口

在 Windows 上使用 WSL2 + Docker 时,容器映射 MQTT 常用的 1883 端口,可能会遇到绑定失败的问题。奇怪的是,使用 netstat 或 lsof 检查时都看不到进程占用端口,但 Docker 仍然无法完成端口映射。

这通常不是端口被某个进程占用,而是 Windows 将该端口放进了 Excluded Port Range(保留端口范围)。保留范围内的端口在系统层面不可供 Docker 使用,因此检查进程时看起来是空闲的,实际却无法绑定。

解决方案

下面以 1883 端口为例。重启 NAT 服务会短暂中断 WSL 和 Docker 的网络连接,请先停止依赖这些网络的容器,并使用管理员身份打开命令提示符或 PowerShell。

重启 NAT 服务

执行以下命令:

cmd 复制代码
net stop winnat
net start winnat

然后重新尝试启动容器并映射 1883 端口。

查看系统保留端口范围

如果重启 NAT 服务后仍然无法绑定,执行:

cmd 复制代码
netsh interface ipv4 show excludedportrange protocol=tcp

检查输出的起止端口范围中是否包含 1883。例如,某个范围是 1800-1899 时,1883 就属于系统保留端口。

相关推荐
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
Linux-lucky12 小时前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
禁默13 小时前
启元 Q1 二次开发实践:Ubuntu 部署与仿真验证,从 PrimeConsole 到 ROS 2 Humble + RViz
linux·运维·ubuntu
skywalk816313 小时前
把 去也网站 从 Ubuntu 搬到 FreeBSD:一次 Service Jail + nginx 的部署实录
linux·运维·nginx·ubuntu·freebsd
爱莉希雅&&&15 小时前
GitLab 完整学习笔记
linux·运维·服务器
风笙97816 小时前
[文件系统]文件系统挂载与卸载详解
linux
GeW16 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
陈希12317 小时前
Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位
linux·服务器·网络
测试界的小码农21 小时前
【Linux 命令实战(03):文件创建、复制、移动与删除,掌握 touch、mkdir、cp、mv、rm】
linux·服务器·php
没差c21 小时前
winsw将jar、nginx等注册为Windows服务
windows·nginx·jar